Как преобразовать книгу Excel в OR C в PySpark? - PullRequest
0 голосов
/ 23 апреля 2020

Я пытаюсь преобразовать книгу Excel с несколькими листами в ИЛИ C.

Сначала я запускаю следующий фрагмент кода:

import functools
import io


def pd_dfs_from_excel_rdd(rdd_record, pandas_opts):
    file_path = rdd_record[0]
    file_contents = rdd_record[1]

    file_like_obj = io.BytesIO(file_contents)
    df_dict = pd.read_excel(file_like_obj, **pandas_opts)

    dfs = list()

    for sheet_name, sheet_df in df_dict.items():
        entry = (file_path, sheet_name, sheet_df)
        dfs.append(entry)

    return dfs


spark_context = None # Start your context here
excel_files_rdd = spark_context.binaryFiles(some_path)

pandas_opts = {
        'sheetname': None,
        'header': 1,
    }

parsing_func = functools.partial(pd_dfs_from_excel_rdd, pandas_opts=pandas_opts)

parsed_excel_sheets = excel_files_rdd.flatMap(parsing_func)

Источник: http://brianstempin.com/2017/10/05/dealing-with-excel-data-in-pyspark/

Я получаю parsed_excel_sheets, который является СДР, который содержит (путь к файлу, имя листа, лист pandas df) кортежей.

Теперь я хотите преобразовать данные Pandas в кадры PySpark и сохранить их как OR C с именем листа в качестве имени. Как я могу это реализовать?

(Автор вышеупомянутой статьи показывает, как создать один фрейм данных PySpark для всех листов, но мне нужен один фрейм данных для каждого листа.)

...