从avsc文件自动创建StructType

时间:2016-03-17 14:48:22

标签: scala apache-spark

将avro文件读入spark数据框(版本1.3.0)时,我看到人们通过代码创建StructType。

但我不想将架构硬编码到我的代码中。相反,我想读一个外部" AVSC"包含架构并生成StructType的文件。

这可能吗?如果有,怎么样?

2 个答案:

答案 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")
相关问题