使用 Python 将 Dask 数据帧转换为 Spark 数据帧
Posted
技术标签:
【中文标题】使用 Python 将 Dask 数据帧转换为 Spark 数据帧【英文标题】:Convert Dask Dataframe to Spark dataframe using Python 【发布时间】:2021-02-25 13:31:15 【问题描述】:我想将 Dask Dataframe 转换为 Spark Dataframe。
让我们考虑这个例子:
import dask.dataframe as dd
dask_df = dd.read_csv("file_name.csv")
# convert dask df to spark df
spark_df = spark_session.createDataFrame(dask_df)
但这不起作用。有没有其他方法可以做到这一点。提前致谢。
【问题讨论】:
【参考方案1】:使用 Dask 将 Spark DataFrame 写入磁盘并使用 Spark 读取它最适合更大的数据集。
以下是转换较小数据集的方法。
pandas_df = dask_df.compute()
pyspark_df = spark.createDataFrame(pandas_df)
我不知道在没有大规模洗牌的情况下将 Dask DataFrame 转换为 Spark DataFrame 的内存方式,但这肯定是一个很酷的功能。
【讨论】:
【参考方案2】:您最好的选择是将数据框保存到文件中,例如 parquet 格式:dask_df.to_parquet(...)
。如果您的数据足够小,您可以将其完全加载到客户端并将生成的 pandas 数据帧提供给 Spark。
虽然可以将 spark 和 dask worker 放在节点上,但它们之间不会直接通信,通过客户端流式传输大数据也不是一个好主意。
【讨论】:
以上是关于使用 Python 将 Dask 数据帧转换为 Spark 数据帧的主要内容,如果未能解决你的问题,请参考以下文章