Как прочитать большой файл паркета в виде нескольких кадров данных? - PullRequest
0 голосов
/ 18 июня 2019

Я пытаюсь преобразовать большой файл паркета в CSV. Так как объем моей оперативной памяти составляет всего 8 ГБ, я получаю ошибку памяти. Так есть ли способ прочитать паркет в несколько кадров данных по циклу?

Ответы [ 2 ]

0 голосов
/ 18 июня 2019

Вы можете сделать это с помощью 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-файл, см. Следующий ответ: Запись разделов Dask в один файл (например, путем их последующего объединения).

0 голосов
/ 18 июня 2019
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.

...