【发布时间】:2020-07-18 08:13:29
【问题描述】:
您如何描述 avro 模式中的 spark StructType 数据类型?我正在生成一个镶木地板文件,其格式在 avro 模式中进行了描述。然后将该文件从 S3 加载到 spark 中。有 array 和 map 数据类型,但它们与 StructType 不对应。
【问题讨论】:
标签: apache-spark avro parquet
您如何描述 avro 模式中的 spark StructType 数据类型?我正在生成一个镶木地板文件,其格式在 avro 模式中进行了描述。然后将该文件从 S3 加载到 spark 中。有 array 和 map 数据类型,但它们与 StructType 不对应。
【问题讨论】:
标签: apache-spark avro parquet
使用包 org.apache.spark.sql.avro (Spark 2.4),您可以将 sparkSQL 模式转换为 avro 模式,反之亦然。
你不能这样尝试:
import org.apache.spark.sql.avro.SchemaConverters
val sqlType = SchemaConverters.toSqlType(avroSchema)
var rowRDD = yourGeneircRecordRDD.map(record => genericRecordToRow(record, sqlType))
val df = sqlContext.createDataFrame(rowRDD , sqlType.dataType.asInstanceOf[StructType])
您也可以在这里找到更多答案:Code
【讨论】: