从Databricks中的Azure Datalake读取AVRO

问题描述 投票:0回答:1

我正在尝试读取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
apache-spark avro azure-data-lake azure-databricks
1个回答
0
投票

绝对URI中的相对路径

您需要指定协议而不是使用/mnt

例如,如果从Azure blobstore读取,则为[C0

您还可以排除wasb://some/path/,因为Avro阅读器应该已经拾取了路径中的所有Avro文件

*.avro

并且,如果您想从EventHub中读取,它将公开一个Kafka API,而不是文件路径AFAIK

© www.soinside.com 2019 - 2024. All rights reserved.