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