Ign*_*rre 3 scala apache-spark apache-spark-sql
我有一个结构如下的数据框:
root
|-- npaDetails: struct (nullable = true)
| |-- additionalInformation: struct (nullable = true)
| |-- npaStatus: struct (nullable = true)
| |-- npaDetails: struct (nullable = true)
|-- npaHeaderData: struct (nullable = true)
| |-- npaNumber: string (nullable = true)
| |-- npaDownloadDate: string (nullable = true)
| |-- npaDownloadTime: string (nullable = true)
Run Code Online (Sandbox Code Playgroud)
我想npaNumber从数据框中的所有行中检索所有内容。
我的方法是遍历数据框中的所有行,为每一行提取npaHeaderData字段中列中存储的值npaNumber。所以我编写了以下几行代码:
parquetFileDF.foreach { newRow =>
//To retrieve the second column
val column = newRow.get(1)
//The following line is not allowed
//val npaNumber= column.getAs[String]("npaNumber")
println(column)
}
Run Code Online (Sandbox Code Playgroud)
每次迭代打印的列的内容如下所示:
[207400956,27FEB17,09.30.00]
但column属于 Any 类型,我无法提取其任何字段。谁能告诉我我做错了什么或者我应该遵循什么方法而不是这种方法?
谢谢
如果您只想提取,npaNumber那么您可以这样做
parquetFileDF.select($"npaHeaderData.npaNumber".as("npaNumber"))
Run Code Online (Sandbox Code Playgroud)
你应该只有一个dataframewithnpaNumber列。
| 归档时间: |
|
| 查看次数: |
7669 次 |
| 最近记录: |