我一直在 Azure Blob 上测试 parquet 文件,而不是将数据加载到 PostgreSQL 表中,因为我用 pandas 做了很多提取/转换步骤,可能很快就会探索 Spark。
- 使用 pyarrow 打开 csv 文件是否有任何优点或缺点 pd.read_csv 的?
- 我应该使用 pyarrow 来编写 parquet 文件而不是 pd.to_parquet?
最终,我将存储原始文件(csv、json 和 xlsx)。我用 pandas 或 pyarrow 阅读这些,添加一些元数据列,然后保存一个精炼/转换的 Parquet 文件(Spark 风格,快速压缩)。然后,我使用 pyarrow(最终可能是 Spark)读取这些转换后的文件,并执行一些聚合或其他可视化操作(我可能将其另存为另一个 Parquet 文件)。
在将数据转换为 pandas 数据帧之前使用 pyarrow 读取数据,或者在将数据保存为 .parquet 文件之前使用 pyarrow 转换数据,我是否使用了更多内存?我只是想确保我的效率,因为我正在设置一个 Airflow 运算符(operator),它将对大量文件/数据执行这些步骤。
最佳答案
Are there any pros or cons using pyarrow to open csv files instead of pd.read_csv?
没有在 spark 上使用 pandas dataframe 以分布式模式计算数据的解决方法。 pandas dataframe 和 spark 一起使用并不实用,尤其是对于大型数据集。你基本上是在使用 spark host 的力量而不是 spark 本身
Should I use pyarrow to write parquet files instead of pd.to_parquet?
一次重构并替换所有 pandas 依赖项并不容易,但在数据获取/设置操作的任何时候使用 pyarrow 是理想的
Am I using more memory by reading data with pyarrow before converting it to a pandas dataframe, or by converting data with pyarrow before saving it as a .parquet file?
它使用从 pyarrow 到 pandas 的更多内存
总而言之,假设您没有从内存转储中读取 pandas 数据帧,那么请尝试将数据加载到 spark 数据帧,并在整个过程中使用 spark 内置数据帧和 pyarrow parquet 文件
关于pandas - Pyarrow 用于 Parquet 文件,还是只是 Pandas ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57940340/