什么是这样的流程常用手法写星火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