将数据框列扩展为多个列

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

具有单列值的数据框如下所示

------------------------
| value                |
|----------------------|
| col1,col2,col3,col4  |
| v1,v2,v3,v4          |
| v1,v5,v9,v11         |
|----------------------|

我想在 Spark scala 中生成类似的数据框,如下所示

-----------------------------
| col1 | col2 | col3 | col4 |
|---------------------------|
| v1   | v2   | v3   | v4   |
|---------------------------|
| v1   | v5   | v9   | v11  |
|---------------------------|

我能想到的一种方法是使用 withColumn() 生成一个新的 df 。但是,我想知道 Spark 是否有更好的方法来做到这一点。

PS - 我最初的尝试是在 Spark env 中读取 Uber jar 内的 csv,但是看起来没有简单的方法可以按照 从 Uber Jar 内的资源加载 CSV 文件作为数据帧

读取 jar 内的 csv
dataframe scala csv apache-spark databricks
1个回答
0
投票

最好确保csv位于外部存储系统(例如HDFS、本地文件系统)中。 JAR 文件旨在打包代码和库,而不是数据。将大型数据集保留在 JAR 中效率不高,因为它分布在整个集群中,导致每个工作进程上不必要的数据集复制。

在您的情况下,只需使用

header
选项从文件系统读取 csv 就足够了

spark.read.option("header", True).csv(path)
© www.soinside.com 2019 - 2024. All rights reserved.