Как сохранить и скачать локально CSV в DBFS? - PullRequest
1 голос
/ 08 октября 2019

Я пытаюсь сохранить CSV-файл в результате запроса SQL, отправленного в Афину через Databricks. Предполагается, что файл представляет собой большую таблицу размером около 4-6 ГБ (~ 40 м строк).

Я делаю следующие шаги:

  1. Создание фрейма данных PySparkпо:

    df = sqlContext.sql("select * from my_table where year = 19")
    
  2. Преобразование фрейма данных PySpark в фрейм данных Pandas. Я понимаю, что этот шаг может быть ненужным, но я только начинаю использовать Databricks и, возможно, не знаю необходимых команд, чтобы сделать это быстрее. Поэтому я делаю это так:

    ab = df.toPandas()
    
  3. Сохраните файл где-нибудь, чтобы загрузить его локально позже:

    ab.to_csv('my_my.csv')
    

Но как сделатьЯ загружаю его?

Я прошу вас быть очень конкретным, поскольку я не знаю многих хитростей и деталей при работе с Databricks.

1 Ответ

0 голосов
/ 23 октября 2019

Используя графический интерфейс, вы можете загрузить полные результаты (максимум 1 миллион строк).

enter image description here

Чтобы загрузить полные результаты, сначала сохраните файл в dbfsа затем скопируйте файл на локальный компьютер, используя Databricks cli следующим образом.

dbfs cp "dbfs: /FileStore/tables/my_my.csv" "A: \ AzureAnalytics"

Ссылка: Файловая система Databricks

Интерфейс командной строки DBFS (CLI) использует API-интерфейс DBFS для предоставления простого в использовании интерфейса командной строки для DBFS. ,Используя этот клиент, вы можете взаимодействовать с DBFS, используя команды, аналогичные тем, которые вы используете в командной строке Unix. Например:

# List files in DBFS
dbfs ls
# Put local file ./apple.txt to dbfs:/apple.txt
dbfs cp ./apple.txt dbfs:/apple.txt
# Get dbfs:/apple.txt and save to local file ./apple.txt
dbfs cp dbfs:/apple.txt ./apple.txt
# Recursively put local dir ./banana to dbfs:/banana
dbfs cp -r ./banana dbfs:/banana

Ссылка: Установка и настройка интерфейса данных Azure CLI

Надеюсь, это поможет.

...