2016-05-31 51 views

回答

0

通常,您需要创建一个代表您的模式的StructType。 A StructType包含一个Array[StructField],其中数组的每个元素对应于您的模式中的一列。 A StructField可以是任何支持DataType - 包括嵌套模式的另一个StructType

创建模式可以是简单的:

val schema = StructType(Array(
    StructField("col1", StringType), 
    StructField("col2", LongType) 
)) 

如果要生成一个复杂的数据集架构 - StructTypes一个包含嵌套 - 那么你很可能需要创建一个递归函数。在spark-avro集成库中可以找到这样一个函数的样子。函数toSqlType需要Avro模式并将其转换为Spark StructType

+0

谢谢@ david-griffin,但我后**自动模式发现/推理**。我应该如何采样数据并合并模式? –