Как прочитать CSV с объектом схемы avro в качестве заголовка на pyspark? - PullRequest
0 голосов
/ 24 мая 2019

У меня есть файл, который я могу правильно прочитать следующим образом:

sqlContext.read.format('csv').options(header='false', inferSchema='true', delimiter = "\a", nullValue = '\\N').load('adl://resource.azuredatalakestore.net/datalake-prod/raw/something/data/something/date_part={}/{}'.format(elem[0], elem[1]))

проблема в том, что заголовка нет, заголовок фактически находится в другом файле типа avsc, объект схемы Apache Avro.

Как лучше всего использовать его в качестве заголовка моего DF?

Я запускаю pyspark на Azure Databricks.

1 Ответ

0 голосов
/ 24 мая 2019

У вас также есть файл avro?На сайте базы данных есть пример чтения файла avsc (https://docs.databricks.com/spark/latest/data-sources/read-avro.html).). Таким образом, вы можете сначала прочитать файл avsc в фрейм данных:

import org.apache.avro.Schema

val schema = new Schema.Parser().parse(new File("user.avsc"))

val df = spark
  .read
  .format("avro")
  .option("avroSchema", schema.toString)
  .load("/tmp/episodes.avro")

Если у вас нет файла avro, к которому можно обратитьсяесли вы можете попытаться указать этот код в пустой папке.

Затем используйте схему в файле csv:

val df = spark.read.format("csv").schema(df.schema).load(csvFilePath)
...