这个问题在这里已经有了答案:
spark加载数据并将文件名添加为dataframe列(1个答案)
7个月前关门了。
我有一些csv文件的格式如下:
JO.csv
KE.csv
NZ.csv
CO.csv
MY.csv
IN.csv
PL.csv
NO.csv
ZA.csv
DK.csv
IL.csv
CN.csv
BE.csv
AR.csv
IT.csv
JP.csv
我正在尝试将这些都加载到sparkrdd中,并保留原产国(一个剥离的文件名就足够了)
从pyspark.sql导入sqlcontext sqlcontext=sqlcontext(sc)
a = sc.textFile("./*.csv")
display_rdd_function(a)
运行此命令将使sparkrdd中的所有行都没有键。
我想把每一个项目作为[strip(filename),csv\u row](或大约)。
关于添加多个文件还有许多其他问题,但是没有人考虑使用键添加多个文件。
谢谢您
1条答案
按热度按时间yzuktlbb1#
我建议用
sqlCOntext
阅读csv directory
. 我在本地试过这个-目录结构
阅读目录如下-
您可以观察到在单个Dataframe中按顺序读取所有文件-
现在你可以添加
file_name
像列一样-下面是
show
结果,请注意,我已经替换了full path
与<path>
```+---+----------------------------------------------------------------------------------------------------------------------+
|id |file_name |
+---+----------------------------------------------------------------------------------------------------------------------+
|1 |file:////resources/csvs/JO.csv|
|2 |file:////resources/csvs/JO.csv|
|3 |file:///<>/resources/csvs/KE.csv|
|4 |file:///<>/resources/csvs/KE.csv|
+---+----------------------------------------------------------------------------------------------------------------------+