从架构Scala提取列详细信息和类型

问题描述 投票:0回答:2

我正在使用AWS EMR v5.29.0 Spark v2.4.4和Scala v2.11.12。

我正在使用推断模式方法读取文件,并使用以下代码创建具有列名和列名数据类型的数据框

val df = spark.read.options(Map("inferSchema"->"true","header"->"true")).csv("s3://bucket-name/File_Name.csv")
val columnList = df.schema.fields.map(field => (field.name, field.dataType.typeName)).toList.toDF("column_name","datatype")

当我执行df.printSchema()时,输出如下。

df.printSchema()

Output:

root
 |-- ABC|EFG|IJK|LMN: string (nullable = true)

当我在做columnList.show()输出如下:

+--------------------+--------+
|         column_name|datatype|
+--------------------+--------+
|ABC|EFG|IJK|LMN     |  string|
+--------------------+--------+

所需的输出如下。

+---------------+--------+
|column_name    |datatype|
+---------------+--------+
|ABC            |string  |
|EFG            |string  |
|IJK            |string  |
|LMN            |string  |
+---------------+--------+

问候

mahi

我正在使用AWS EMR v5.29.0 Spark v2.4.4和Scala v2.11.12。我正在使用推断模式方法读取文件,并使用以下代码val df = ...

scala apache-spark amazon-emr
2个回答
0
投票
© www.soinside.com 2019 - 2024. All rights reserved.