如何将大型实木复合地板文件读取为多个数据帧?

时间:2019-06-18 10:10:28

标签: python pyspark dask parquet pyarrow

我正在尝试将大型实木复合地板文件转换为CSV。由于我的RAM只有8 GB,所以出现内存错误,那么有什么办法可以通过循环将实木复合地板读取成多个数据帧吗?

2 个答案:

答案 0 :(得分:0)

from pyspark.sql import SparkSession
# initialise sparkContext
spark = SparkSession.builder.master('local').appName('myAppName') \
.config('spark.executor.memory', '4gb').config("spark.cores.max", "6").getOrCreate()

sc = spark.sparkContext

# Use SQLContext to read parquet file
from pyspark.sql import SQLContext
sqlContext = SQLContext(sc)

# Read parquet file
df = sqlContext.read.parquet('ParquetFile.parquet')
  

我在这里增加了内存和核心。请尝试相同的   以后您可以将其转换为csv。

答案 1 :(得分:0)

您可以使用daskhttps://dask.org/)进行此操作,它可以处理本地计算机上大于内存的数据。
读取实木复合地板文件并再次另存为CSV的示例代码:

import dask.dataframe as dd

df = dd.read_parquet('path/to/file.parquet')
df.to_csv('path/to/new_files-*.csv')

这将创建CSV文件(https://docs.dask.org/en/latest/dataframe-api.html#dask.dataframe.to_csv)的集合。
如果您只需要一个CSV文件,请查看以下答案以完成此操作:Writing Dask partitions into single file(例如,之后将它们串联起来)。