Pyspark-在LINKS列表上并行映射功能

时间:2019-06-14 08:09:01

标签: python csv parallel-processing pyspark parquet

我的文件夹中包含超过100000个“ csv”文件。不幸的是,这些csvs的格式不正确,因此我必须删除大约80行的Header。

应用架构,然后 ("mode", "DROPMALFORMED")

并添加4个新列, df = df.withColumn ("blabla", lit (blabla)) 我从文件名中提取新列的信息。 到目前为止,一切都很好。

但是,在我首先从“文件夹”创建的链接列表中:

  

hdfs:// server :: 42 / projects / banana / live / csv1id4.csv

     

hdfs:// server :: 42 / projects / banana / live / csv2id5.csv

     

hdfs:// server :: 42 / projects / banana / live / csv3id6.csv

     

...

     

hdfs:// server :: 42 / projects / banana / live / csv100000id8484848.csv

我想在每个链接上调用一个函数:

  • 将csv文件作为数据帧读取

  • 创建4个新列,并将内容从文件Name中拖出

  • ,并将创建的dataFrame写入实木复合地板文件 (df.write.mode('append').parquet('hdfs:///projects/parquet

显然,对于“对于每个“链接” do循环”来说,所有这一切都不并行

还尝试保存到rdd的链接列表,并执行类似的操作:

rdd.map(Lambda x: doFunction(x))

有人有想法或提示吗?

非常感谢您!

0 个答案:

没有答案