Какой наиболее используемый формат для сохранения данных с информацией о типе

datascience.stackexchange https://datascience.stackexchange.com/questions/13658

  •  16-10-2019
  •  | 
  •  

Вопрос

Я экспортирую данные из базы данных SQL и импортирую их в R. Это двухэтапный процесс, так как я сначала (автоматически) загружаю данные на жесткий диск, а затем импортируйте файл с R.

В настоящее время я использую файлы CSV для сохранения данных. Все поддерживают CSV. Но CSV не поддерживает информацию типа. Это иногда заставляет загружать файл CSV, потому что я должен проверить все типы столбцов. Это кажется ненужным, потому что база данных SQL уже указывает типы столбцов.

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

В настоящее время я работаю с базами данных SQL, FME etl'ing и R, но я думаю, что это проблема для каждого трансфера данных.

Это было полезно?

Решение

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

Действительно обычным является SQLite, "Наиболее широко развернутый и используемый двигатель базы данных«Небольшая реляционная база данных, в наши дни, использовалась за закулисными закулисными во многих с открытым исходным кодом и коммерческими программными пакетами с потребностями хранения данных (например, Adobe Lightroom, Mozilla Firefox).

С макушки моей головы:

Если вы работаете с R и Python:

А пух Перо Программное обеспечение было разработано для быстрой сериализации. В настоящее время он доступен для R и Python. Два власти R и Python разработали его в сотрудничестве. Он построен на вершине "Apache Arrow" и/или "протоколы буферы", это быстро Для чтения, но это в Альфа -штате.

Есть несколько форматов сериализации, доступных в сообществе XML. Вы можете хранить сложные сетки объектов в этих форматах.

Есть JSON и JSON-SCHEMA.

Если ваши таблицы скудны, есть, например, формат «Sparse Arff» (хотя в небольшом использовании). Должны быть другие (Я должен искать это сам)

Другие советы

Parquet и Avro поддерживают типы данных (строки, целые числа, поплавки и т. Д.). Это основные типы файлов, используемые для проектов «большие данные», хотя ваши данные не должны быть большими. Apache Spark может с легкостью читать оба. Сказав это, я большой поклонник хранения данных в базе данных SQL (например, MySQL или Postgres), потому что это то, для чего они созданы. Если вы не можете повторно использовать базу данных, из которой вы вытаскиваете, не могли бы вы сделать свою собственную базу данных локально или на отдельном сервере? Я бы попробовал использовать реляционную базу данных, пока ваши данные не превышат 50 ГБ (произвольно «несколько больший» размер), а затем я бы использовал Avro или Parquet.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с datascience.stackexchange
scroll top