具有单列值的数据框如下所示
------------------------
| 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最好确保csv位于外部存储系统(例如HDFS、本地文件系统)中。 JAR 文件旨在打包代码和库,而不是数据。将大型数据集保留在 JAR 中效率不高,因为它分布在整个集群中,导致每个工作进程上不必要的数据集复制。
在您的情况下,只需使用
header
选项从文件系统读取 csv 就足够了
spark.read.option("header", True).csv(path)