什麼是這樣的流程常用手法寫星火Avro的文件(使用Scala的API):星火 - 寫的Avro文件
- 從HDFS
- 解析某些日誌文件,每個日誌文件適用一些業務邏輯和產生的Avro文件(或者多個文件合併)
- 寫的Avro文件到HDFS
我試圖用火花的Avro,但它並沒有太大的幫助。
val someLogs = sc.textFile(inputPath)
val rowRDD = someLogs.map { line =>
createRow(...)
}
val sqlContext = new SQLContext(sc)
val dataFrame = sqlContext.createDataFrame(rowRDD, schema)
dataFrame.write.avro(outputPath)
此失敗,錯誤:
org.apache.spark.sql.AnalysisException:參考 'StringField' 不明確,可能是:StringField#0,StringField#1,StringField#2,#StringField 3,...
由於提前,
尤利安
你能更具體?例如,爲什麼'spark-avro'不適合你? – zero323
我沒有成功使用Avro使用spark-avro生成的java代碼。另外,當我使用Schema API時,出現以下類型的錯誤:org.apache.spark.sql.AnalysisException:引用'StringField'不明確,可能是:StringField#0,StringField#1,StringField#2,StringField#3 , – d4rkang3l
@ d4rkang3l你確定問題出在avro序列化上嗎? dataFrame是否生成沒有問題? – tomkou