我正在为自定义数据源(属性文件)实现 spark(1.5.2) sql RelationProvider。
有人可以解释一下应该如何实现自动推理算法吗?
我正在为自定义数据源(属性文件)实现 spark(1.5.2) sql RelationProvider。
有人可以解释一下应该如何实现自动推理算法吗?
通常,您需要创建一个StructType
代表您的架构的。AStructType
包含一个Array[StructField]
,其中数组的每个元素对应于架构中的一列。AStructField
可以是任何受支持的DataType
——包括StructType
嵌套模式的另一个。
创建模式可以很简单:
val schema = StructType(Array(
StructField("col1", StringType),
StructField("col2", LongType)
))
如果您想从一个复杂的数据集(包括嵌套的数据集)生成一个模式,StructTypes
那么您很可能需要创建一个递归函数。可以在spark-avro
集成库中找到一个很好的示例来说明此类函数的外观。toSqlType函数采用Avro
模式并将其转换为 Spark StructType
。