将avro文件读入spark数据框(版本1.3.0)时,我看到人们通过代码创建StructType。
但我不想将架构硬编码到我的代码中。相反,我想读一个外部" AVSC"包含架构并生成StructType的文件。
这可能吗?如果有,怎么样?
答案 0 :(得分:1)
我认为这对你有用:
val sqlType = SchemaConverters.toSqlType(yourSchema).dataType.asInstanceOf[StructType]
答案 1 :(得分:0)
databricks提供的git hub似乎有一个spark-avro项目。 https://github.com/databricks/spark-avro
使用此项目,您可以在不指定任何架构的情况下读取avro文件。支持的Spark版本是sparkVersion:=“1.4.1”
val sqlContext = new SQLContext(sc)
val df = sqlContext.read
.format("com.databricks.spark.avro")
.load("src/test/resources/episodes.avro")
df.filter("doctor > 5").write
.format("com.databricks.spark.avro")
.save("/tmp/output")