Я провел некоторое исследование по этому вопросу в течение последних нескольких дней, и я думаю, что я близок к тому, чтобы это заработало, но есть некоторые проблемы, которые я не могу до конца понять.
Я верю в этодолжен работать в среде Scala
// Spark 2.0
// these lines are equivalent in Spark 2.0
spark.read.format("csv").option("header", "false").load("../Downloads/*.csv")
spark.read.option("header", "false").csv("../Downloads/*.csv")
Это дает мне эту ошибку: org.apache.spark.sql.AnalysisException: Path does not exist:
Я думаю, что это должно работать в среде SQL:
df = sqlContext.read
.format("com.databricks.spark.csv")
.option("header", "false")
.load("../Downloads/*.csv") // <-- note the star (*)
df.show()
Этовыдает ошибку синтаксического анализа.
Дело в том, что это все .gz
заархивированные текстовые файлы, и во всех этих файлах действительно нет схемы. Ну, есть вертикальный список имен полей, и реальные наборы данных всегда начинаются с чего-то вроде строки 26, 52, 99, 113, 149 и всевозможных случайных вещей. Все данные разделены каналом. У меня есть имена полей, и я создал структурированные таблицы в Azure SQL Server, где я хочу хранить все данные. Я действительно застрял в том, как перебирать папки и подпапки, искать имена файлов, которые соответствуют определенным шаблонам, и объединять их все в фрейм данных, а затем помещать этот объект в мои таблицы SQL Server. Это кажется довольно простой вещью, но я не могу заставить эту чертову работу работать !!
Я наткнулся на эту идею:
https://stackoverflow.com/questions/37639956/how-to-import-multiple-csv-files-in-a-single-load