我在資料框中有一個二進制列,我希望將其轉換為 xml,我使用創建了一個臨時表
sourceDf = spark.read.csv(sourceFilePath, sep=',', header=True, inferSchema=True).createOrReplaceTempView("sourceTable")
并想運行這個 sql 查詢,它在 sql server 中完美運行,但在 databricks 中不起作用
%sql
SELECT ID
,ORIGINATOR_ID
,INCIDENT_NUMBER
,ATTACHMENT_TYPE
,FORM_NAME
,FORM_DATA
,CAST( CAST( FORM_DATA as XML ).value('.','varbinary(max)') AS nvarchar(max) )
,START_DATE
,END_DATE
,OPERATOR_ID
FROM sourceTable
我收到以下錯誤:
Error in SQL statement: ParseException:
no viable alternative at input 'CAST( CAST( FORM_DATA as XML ).value('(line 7, pos 39)
有人可以幫忙嗎?如果我回到源系統,我可以在 SQL Server 中運行相同的查詢并且它可以完美運行,但是我需要能夠在筆記本中轉換為 xml,然后才能決議 xml。
uj5u.com熱心網友回復:
在 Apache Spark 中沒有單獨的 XML 型別這樣的東西 - 您只能轉換為string型別,然后您可以嘗試將其決議為 XML。完成此操作后,只需按照spark-xml 庫中有關如何使用from_xml函式決議嵌入為列的XML 的說明進行操作(我特別不想從檔案中復制代碼,因為它對于 PySpark 來說非常冗長。)
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/322628.html
標籤:阿帕奇火花 火花 apache-spark-sql 数据块
上一篇:Spark會話問題:例外:Java網關行程在發送其埠號之前退出
下一篇:Spark結構化流批量讀取檢查點
