【发布时间】:2016-05-31 12:49:56
【问题描述】:
我正在为自定义数据源(属性文件)实现 spark(1.5.2) sql RelationProvider。
谁能解释一下自动推理算法应该如何实现?
【问题讨论】:
标签: apache-spark apache-spark-sql apache-spark-1.5
我正在为自定义数据源(属性文件)实现 spark(1.5.2) sql RelationProvider。
谁能解释一下自动推理算法应该如何实现?
【问题讨论】:
标签: apache-spark apache-spark-sql apache-spark-1.5
通常,您需要创建一个代表您的架构的StructType。 StructType 包含 Array[StructField],其中数组的每个元素对应于架构中的一列。 StructField 可以是任何受支持的 DataType - 包括另一个用于嵌套模式的 StructType。
创建架构可以很简单:
val schema = StructType(Array(
StructField("col1", StringType),
StructField("col2", LongType)
))
如果您想从一个复杂的数据集(包括嵌套的StructTypes)生成一个模式,那么您很可能需要创建一个递归函数。在spark-avro 集成库中可以找到这样一个函数的一个很好的例子。 toSqlType 函数采用 Avro 架构并将其转换为 Spark StructType。
【讨论】: