3
私はavroファイルとしてデータフレームを保存しようとしています。私は、多くのネストされたレイヤーを持つxmlファイルを読み込んでいます。データフレームとして格納します。データフレームは正常に格納されます。 xmlには、@ nso、@ ns1、@ ns2などの多くの名前空間ヘッダーがあります。これらは、データフレーム内のヘッダーになります。私はアブロファイルとして保存しようとすると、それは私に、このエラーを与える:「スレッドの例外 『メイン』 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
OK、残りの問題は 'ns1:PublicID'も': 'のために有効な名前ではないということですか?もしそうなら、名前を変更する以外の解決策はないと思いますが、これはネストされたオブジェクトでは正確ではありません。 – zero323