Разделитель заголовков Databricks Spark CSV

Наш CSV-файл имеет формат ^ A в качестве разделителя столбцов и ^ B в качестве разделителя строк / разделителей записей. Поэтому я использую библиотеку databricks spark csv для создания фрейма данных следующим образом:

val dataFrame = cassSqlContext.read.format("com.databricks.spark.csv")
      .option("header", "true").option("inferSchema", "true")
      .option("delimiter", "\u0001").load(file)

Глядя на документацию для spark csv, касающуюся параметра заголовков, говорится следующее: если установлено значение true, первая строка файлов будет использоваться для именования столбцов и не будет включена в данные. Все типы будут считаться строковыми. Значение по умолчанию - false.

Однако мы не используем \ n, мы используем ^ B. Итак, есть ли способ сообщить библиотеке spark csv, что наши заголовки также имеют разделитель, а не значение по умолчанию \ n


person Ahmed    schedule 12.03.2017    source источник
comment
Боюсь, что нет возможности изменить разделитель записей при разборе CSV с помощью Spark. На боковом узле синтаксический анализ csv теперь является частью Spark (начиная с 2.0, если я правильно помню). Вы можете сделать spark.read.csv("/tmp/my.csv")   -  person BenFradet    schedule 14.03.2017
comment
Да, но в настоящее время мы используем Spark 1.6, но я нашел решение   -  person Ahmed    schedule 16.03.2017


Ответы (1)


Мне удалось заставить приведенный выше код работать, добавив следующую строку для своего sparkContext:

sparkContext.hadoopConfiguration.set ("textinputformat.record.delimiter", "\ u0002")

person Ahmed    schedule 15.03.2017