自定义数据源的自动火花模式推断
Posted
技术标签:
【中文标题】自定义数据源的自动火花模式推断【英文标题】:Automatic spark schema inference for custom data source 【发布时间】:2016-05-31 12:49:56 【问题描述】:我正在为自定义数据源(属性文件)实现 spark(1.5.2) sql RelationProvider。
谁能解释一下自动推理算法应该如何实现?
【问题讨论】:
***.com/a/35372282/1560062 【参考方案1】:通常,您需要创建一个代表您的架构的StructType
。 StructType
包含 Array[StructField]
,其中数组的每个元素对应于架构中的一列。 StructField
可以是任何受支持的 DataType
- 包括另一个用于嵌套模式的 StructType
。
创建架构可以很简单:
val schema = StructType(Array(
StructField("col1", StringType),
StructField("col2", LongType)
))
如果您想从一个复杂的数据集(包括嵌套的StructTypes
)生成一个模式,那么您很可能需要创建一个递归函数。在spark-avro
集成库中可以找到这样一个函数的一个很好的例子。 toSqlType 函数采用 Avro
架构并将其转换为 Spark StructType
。
【讨论】:
谢谢@david-griffin,但我在自动模式发现/推理。我应该如何对数据进行采样并合并架构?以上是关于自定义数据源的自动火花模式推断的主要内容,如果未能解决你的问题,请参考以下文章
java - 调用自定义火花UDF时如何解决Java中的NoSuchMethodException