熊猫数据帧的 PySpark rdd
Posted
技术标签:
【中文标题】熊猫数据帧的 PySpark rdd【英文标题】:PySpark rdd of pandas data frames 【发布时间】:2020-06-29 11:55:18 【问题描述】:我正在提取不同源文件的信息。每个源文件对应于一些测量数据的给定快照时间。我有一个预处理函数,它采用其中一个文件并输出一个熊猫数据框。所以我做了一个 sparksc.wholeTextFiles
调用,它给了我所有输入文件的列表,然后我在上面调用了map
,它为我提供了一个 rdd,其中每个元素都是一个 pandas 数据框。现在“重塑”这种结构的最佳方法是什么,以便我只有一个由连接的较小数据帧组成的结果数据帧?
【问题讨论】:
【参考方案1】:您可以创建火花数据框。假设这些文件位于一个位置并被定界,您可以使用 spark 创建一个包含所有文件数据的新数据框。
spark.read.option("header", "true").csv("../location/*")
之后,您可以使用 spark 中可用的大量转换。它们与 pandas 非常相似,并且可以处理大数据,甚至比 RDD 更快。
【讨论】:
谢谢。问题是,必须先处理非 CSV 格式的文件才能获得 CSVish 格式。 你能发布这些文件的样本吗?这将有助于重现问题。 因此文件包含一些非常具体的非表格数据,在继续之前必须对其进行处理。出于这个原因,我手动编写了一个解析器,它为给定的输入文件返回一个数据框。 如果解析后有不同的数据帧。您可以遍历每个数据帧并将每个 df 联合到新的 spark df。前提是它们具有相同的列。 好的,但这必须发生在主人身上,对吧?在工人身上联合多个数据框没有解决方案。以上是关于熊猫数据帧的 PySpark rdd的主要内容,如果未能解决你的问题,请参考以下文章