从Apache Spark中的模式获取数据类型列表

Use*_*130 15 python schema types apache-spark spark-dataframe

我在Spark-Python中有以下代码来获取DataFrame架构中的名称列表,它工作正常,但我如何获取数据类型列表?

columnNames = df.schema.names
Run Code Online (Sandbox Code Playgroud)

例如,类似于:

columnTypes = df.schema.types
Run Code Online (Sandbox Code Playgroud)

有没有办法获得DataFrame模式中包含的单独的数据类型列表?

Dan*_*ula 23

这是一个建议:

df = sqlContext.createDataFrame([('a', 1)])

types = [f.dataType for f in df.schema.fields]

types
> [StringType, LongType]
Run Code Online (Sandbox Code Playgroud)

参考:

  • 或`df.printSchema()` (5认同)

Via*_*mov 6

由于问题标题不是特定于python的,因此我将在scala此处添加版本:

val tyes = df.schema.fields.map(f => f.dataType)
Run Code Online (Sandbox Code Playgroud)

这将导致的数组org.apache.spark.sql.types.DataType

  • 不过,对于那些碰巧使用 scala 的人来说仍然很有帮助。 (6认同)