apache-spark - 使用 Kafka 使用 Synapse Spark 将数据帧写入 Azure EventHub
问题描述
我想使用 Azure Synapse Spark(在 Synapse Analytics 工作区中)将数据帧写入启用 Kafka 的 Azure 事件中心。
- Apache Spark 版本:2.4
- Python版本:3.6
- 斯卡拉版本:2.11.12
这个确切的代码在 Databricks 中完美运行:
# Build SASL:
EH_SASL = 'org.apache.kafka.common.security.plain.PlainLoginModule required username="$ConnectionString" password="Endpoint=sb://{}.servicebus.windows.net/;SharedAccessKeyName={};SharedAccessKey={}";'.format(EH_NAMESPACE, EH_CLO_TRANSACTIONS_KEY_NAME, EH_CLO_TRANSACTIONS_KEY_VALUE)
# Write data:
kdf.write.format("kafka")\
.option("kafka.sasl.mechanism", "PLAIN")\
.option("kafka.security.protocol", "SASL_SSL")\
.option("kafka.sasl.jaas.config", EH_SASL)\
.option("kafka.batch.size", 5000)\
.option("kafka.bootstrap.servers", "{}.servicebus.windows.net:9093".format(EH_NAMESPACE))\
.option("kafka.request.timeout.ms", 300000)\
.option("topic", EH_CLO_TRANSACTIONS)\
.save()
在这里,使用 Synapse Spark 我收到此错误:
java.lang.ClassNotFoundException: org.apache.kafka.common.serialization.ByteArrayDeserializer
at java.net.URLClassLoader.findClass(URLClassLoader.java:382)
at java.lang.ClassLoader.loadClass(ClassLoader.java:418)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:352)
at java.lang.ClassLoader.loadClass(ClassLoader.java:351)
我相信这与我正在使用的库有关。我现在正在使用:spark-sql-kafka-0-10_2.11-2.4.0.jar
但我也尝试过:
spark-sql-kafka-0-10_2.11-2.4.8.jar
spark-sql-kafka-0-10_2.11-2.4.3.jar
spark-sql-kafka-0-10_2.11-2.4.0.jar
spark-sql-kafka-0-10_2.11-2.0.2.jar
spark-sql-kafka-0-10_2.12-2.4.7.jar
spark-sql-kafka-0-10_2.12-2.4.3.jar
spark-sql-kafka-0-10_2.12-2.4.0.jar
天蓝色-eventhubs-spark_2.11-2.3.17.jar
天蓝色-eventhubs-spark_2.11-2.3.18.jar
每次我收到与缺少课程等相关的错误时。
那么我可以使用哪些库来让这段代码工作呢?
谢谢!
解决方案
推荐阅读
- java - 已将 Weblogic 证书添加到本地 JDK cacerts。如何在 PCF 中添加证书,以便我可以通过 mulesoft 成功连接到 Weblogic Jms
- python - 无法读取 csv 文件,pandas 解析器错误
- java - 通过 RDP 和 GUI 连接到 virtualBox 不正确
- mysql - #sql 按类别统计项目总数
- data-structures - C ++ STL中无序映射的关键搜索时间是多少?
- c - 我想在c中反向打印一个字符串数组,但它给了我一个错误
- excel - 如何删除具有 4 个名称的单元格的第三个名称
- c++ - 为什么等价条件是必要的?
- python - Django 结合两个查询集
- python - 带有数字键的mongoengine可以吗?