Чтение AVRO из Azure Datalake в Databricks - PullRequest
1 голос
/ 08 января 2020

Я пытаюсь прочитать данные в формате EventHub (AVRO). У меня проблемы с загрузкой данных в фрейм данных в блоках данных.

Вот код, который я использую. Пожалуйста, дайте мне знать, если я делаю что-то не так

path='/mnt/datastore/origin/zone=raw/subject=customer_events/source=EventHub/ver=1.0/*.avro'

df = spark.read.format("com.databricks.spark.avro") \
    .load(path)

Ошибка

IllegalArgumentException: 'java.net.URISyntaxException: Relative path in absolute URI:

Я пытался использовать какой-то код для устранения ошибки, но я получаю синтаксические ошибки

import org.apache.spark.sql.SparkSession
SparkSession spark = SparkSession
                     .builder()
                   .config("spark.sql.warehouse.dir","/mnt/datastore/origin/zone=raw/subject=customer_events/source=EventHub/ver=1.0/")
                   .getOrCreate()



SyntaxError: invalid syntax
File "<command-265213674761208>", line 2
SparkSession spark = SparkSession

1 Ответ

1 голос
/ 09 января 2020

Относительный путь в абсолютном URI

Необходимо указывать протокол, а не использовать /mnt

Например, wasb://some/path/ при чтении из Azure blobstore

Вы также можете исключить *.avro, поскольку программа чтения Avro уже должна получить все файлы Avro по пути

https://docs.databricks.com/data/data-sources/read-avro.html#python -api

И если вы хотите читать из EventHub, который предоставляет API Kafka, а не путь к файлу, AFAIK

...