Работа с данными с помощью синтаксиса SQL

Обработка данных в командной строке

Susan Sun

Data Person

csvsql: документация

csvsql:

  • применяет SQL-запросы к одному или нескольким CSV-файлам
  • создаёт базу данных SQL в памяти для временного хранения обрабатываемого файла
  • подходит только для файлов малого и среднего размера

Документация:

csvsql -h
usage: csvsql [-h] [-d DELIMITER] [-t] [-q QUOTECHAR] [-u {0,1,2,3}] [-b]
              [-p ESCAPECHAR] [-z FIELD_SIZE_LIMIT] [-e ENCODING] [-L LOCALE]
Обработка данных в командной строке

csvsql: применение SQL к локальному CSV-файлу

Пример синтаксиса:

ls
Spotify_MusicAttributes.csv
Обработка данных в командной строке

csvsql: применение SQL к локальному CSV-файлу

Пример синтаксиса:

csvsql --query "SELECT * FROM Spotify_MusicAttributes LIMIT 1" \
    Spotify_MusicAttributes.csv
track_id,danceability,duration_ms,instrumentalness,loudness,tempo,time_signature
118GQ70Sp6pMqn6w1oKuki,0.787,124016.0,0.784,-10.457,119.988,4.0
Обработка данных в командной строке

csvsql: применение SQL к локальному CSV-файлу

Пример синтаксиса:

csvsql --query "SELECT * FROM Spotify_MusicAttributes LIMIT 1" \
    data/Spotify_MusicAttributes.csv | csvlook
| track_id               | danceability | duration_ms | instrumentalness ...
| ---------------------- | ------------ | ----------- | ---------------- ...
| 118GQ70Sp6pMqn6w1oKuki |        0.787 |     124,016 |            0.784 ...
Обработка данных в командной строке

csvsql: применение SQL к локальному CSV-файлу

Пример синтаксиса:

csvsql --query "SELECT * FROM Spotify_MusicAttributes LIMIT 1" \
    data/Spotify_MusicAttributes.csv > OneSongFile.csv
ls
OneSongFile.csv
Обработка данных в командной строке

csvsql: объединение CSV-файлов с помощью синтаксиса SQL

Пример синтаксиса:

csvsql --query "SELECT * FROM file_a INNER JOIN file_b..." file_a.csv file_b.csv

Примечание:

  • SQL-запрос должен быть записан в одну строку без переносов
  • CSV-файлы указываются в порядке их появления в SQL
Обработка данных в командной строке

Давайте потренируемся!

Обработка данных в командной строке

Preparing Video For Download...