我正在尝试将大型实木复合地板文件转换为CSV。由于我的RAM只有8 GB,所以出现内存错误,那么有什么办法可以通过循环将实木复合地板读取成多个数据帧吗?
答案 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)
您可以使用dask
(https://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(例如,之后将它们串联起来)。