gpt4 book ai didi

python - 当我们尝试将巨大的 Pandas 数据帧(40-5000 万行)转换为 Spark 2.0 数据帧时如何提高性能

转载 作者:太空宇宙 更新时间:2023-11-03 15:01:27 26 4
gpt4 key购买 nike

我正在尝试使用以下代码将 pandas 数据框转换为 Spark 2.0 数据框:

spark_df= sqlContext.createDataFrame(pandas_df)

我有几个问题:

  1. 我想了解当我们尝试将 pandas 数据帧转换为 Spark 数据帧时内部会发生什么。据我了解,当我们尝试使用 toPandas() 方法将 Spark 转换为 pandas 时,内部会发生什么,比如整个事情都交给驱动程序等。
  2. 我正在将 pandas 转换为 Spark,但是花费了太多时间,似乎超过 10-12 小时。我能想到的一个原因是 pandas 数据帧大约有 4300 万行。期待知道有什么方法可以提高性能?或者如果我明确提供架构会有帮助吗?或者有什么建议吗?

最佳答案

为什么要从这种大小的 pandas DF 创建 Spark DF。这没有任何意义。这是一个巨大的开销,因为您要通过 pandas DF 将数据加载到内存中,然后再加载到 Spark 中。不确定您的设置如何,例如内存、簇大小等。但如果您在本地计算机上,这可能会耗尽您的内存。

我的建议,由于 pandas DF 有关系格式,我猜您正在从 csv 文件(或任何其他文件,如 tsv 等)创建 DataFrame。更好的解决方案是通过 DataFrameReader 直接将其加载到 Spark DataFrame 中。 。您还可以传递 schema,这样加载会更快。

关于python - 当我们尝试将巨大的 Pandas 数据帧(40-5000 万行)转换为 Spark 2.0 数据帧时如何提高性能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45060397/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com