Как Афина может прочитать файл паркета из ведра S3 - PullRequest
0 голосов
/ 06 сентября 2018

Я портирую проект python (s3 + Athena) с использования csv на паркет.

Я могу сделать файл паркета, который можно просмотреть в Parquet View.

Я могу загрузить файл в корзину s3.

Я могу создать таблицу Athena, указывающую на корзину s3.

Однако, когда я запрашиваю таблицу в веб-интерфейсе Athena, она запускается в течение 10 минут (кажется, что она никогда не остановится), и результат не отображается.

Весь проект сложный. Я пытаюсь упростить дело.

1. Скажем, у нас есть следующий CSV-файл (test.csv)

    "col1","col2"
    "A","B"

2. Затем я использую следующий код Python (2.7) для преобразования его в файл паркета (test.parquet)

    import fastparquet
    import pandas as pd

    df = pd.read_csv(r"test.csv")
    fastparquet.write(r"test.parquet", df, compression="GZIP")

3.Загрузите файл test.parquet в папку корзины s3 "abc_bucket / abc_folder" с помощью веб-интерфейса s3

4.Создать следующую таблицу с помощью веб-интерфейса Athena

    CREATE EXTERNAL TABLE IF NOT EXISTS abc_folder (
        `col1` string,
        `col2` string)
    STORED AS PARQUET
    LOCATION 's3://abc_bucket/abc_folder/'
    TBLPROPERTIES (
        "parquet.compress"="GZIP"
    );

5. Наконец, запустите следующий код SQL в Афине. SQL работает в течение 10 минут и кажется вечным.

    select *
    from abc_folder;

У меня вопрос, какой шаг выше неправильный, поэтому я не могу запросить таблицу у Афины.

Высоко ценится за любую помощь.

1 Ответ

0 голосов
/ 31 октября 2018

Попробуйте просмотреть данные вашего паркета в самой корзине S3 с опцией «Выбрать из». Если это хорошо, то используйте Athena для создания таблицы вашего файла паркета с соответствующими заголовками столбцов таблицы. Позже предварительный просмотр таблицы для просмотра содержимого.

...