我一直在Azure Blob上测试拼花文件,而不是将数据加载到PostgreSQL表中,因为我使用熊猫执行了很多提取/转换步骤,并且可能很快就会探索Spark。
最终,我存储的是原始文件(csv、json和xlsx)。我用熊猫或pyarrow读取这些文件,添加一些元数据列,然后保存一个细化/转换的拼花文件(Spark风格,快速压缩)。然后,我用pyarrow读取这些转换后的文件(最终可能是Spark),并执行一些聚合或其他可视化的东西(我可能会将其保存为另一个拼花文件)。
在将数据转换为熊猫数据帧之前,我是通过使用pyarrow读取数据来使用更多内存,还是在将数据保存为. parque文件之前使用pyarrow转换数据?我只是想确保我是高效的,因为我正在设置一个Airflow运算符,它将遵循这些步骤处理大量文件/数据。
是否有任何优点或缺点使用pyarrow打开csv文件而不是pd.read_csv?
在火花上使用熊猫数据帧以分布式模式计算数据没有解决方法。熊猫数据帧和火花一起不实用,尤其是在大型数据集中。你基本上是在使用火花主机的力量而不是火花本身
我应该使用pyarrow来写拼花文件而不是pd.to_parquet吗?
一次重构和替换所有熊猫依赖并不容易,但在数据获取/设置操作的任何点使用pyarrow是理想的
我是通过在将数据转换为熊猫数据帧之前使用pyarrow读取数据来使用更多内存,还是通过在将数据保存为. parque文件之前使用pyarrow转换数据来使用更多内存?
它使用了更多的内存,从皮亚罗到熊猫
综上所述,假设您没有从内存转储中读取熊猫数据帧,因此请尝试加载数据以触发数据帧,并在整个过程中使用火花内置数据帧和pyarrow拼花文件