3
我試圖將數據幀保存爲avro文件。我讀過一個有許多嵌套圖層的xml文件。它將其存儲爲數據框。數據幀已成功存儲。 XML有許多名稱空間頭文件,例如@nso,@ ns1,@ ns2等。這些成爲數據框中的頭文件。當我嘗試將其保存爲文件的Avro它給了我這個錯誤:主「在線程異常‘’org.apache.avro.SchemaParseException:非法首字符:@ NS0」在spark中過濾數據幀並保存爲avro
val conf = new SparkConf()
.setMaster("local[2]")
.setAppName("conversion")
val sc = new SparkContext(conf)
val sqlContext = new SQLContext(sc)
val df = sqlContext.read
.format("com.databricks.spark.xml")
.option("rowTag", "Stuff")
.load("sample.xml")
df.printSchema()
df.show()
df.write
.format("com.databricks.spark.avro")
.save("output")
我試過這個解決方案。它將成功替換xml的xmlns頭文件 - 帶有@符號的頭文件。但是,當嵌套層中的ns0,ns1元素仍然存在問題時。你知道如何取代這些嗎? – Defcon
您能否介紹一下它失敗的小例子輸入?這聽起來像一個錯誤。 – zero323
好的,所以剩下的問題是'ns1:PublicID'也不是一個有效的名字,由於':'?如果是這樣,我不認爲有另一種解決方案,而不是重命名,這不完全是嵌套對象。 – zero323