【问题标题】:Missing library to ingest data into Azure Data Explorer with PySpark缺少使用 PySpark 将数据引入 Azure 数据资源管理器的库
【发布时间】:2021-07-21 07:44:45
【问题描述】:

我正在尝试通过 PySpark 和 PyCharm IDE 将数据引入 Azure 数据资源管理器。但是,在运行我的代码时,我遇到了很多与缺少库有关的问题。

根据Azure Data Explorer connector's page,我需要安装connector's jarkusto-ingestkusto-data这两个依赖jar。

下载所有这 3 个 jar 并将它们导入 PySpark 后,我无法继续进行数据摄取,它不断返回我丢失的库错误。第一个是azure-storage lib,然后我安装并导入了jar,它要求adal4j lib,我也这样做,它要求oauth2 lib,然后是json lib,azure-client-authentication lib,javax mail lib ,等等。

我已经安装了 10 多个 jar,但我仍然无法运行此摄取。我是不是做错了什么?

我的 PySpark 版本是 2.4。你可以在下面看到我的代码:

from pyspark.sql import SparkSession

spark = SparkSession.builder \
    .master('local[*]') \
    .appName("Teste") \
    .config('spark.jars', 'kusto-spark_2.4_2.11-2.5.2.jar,kusto-data-2.4.1.jar,kusto-ingest-2.4.1.jar,azure-storage-8.3.0.jar,json-20180813.jar,adal4j-1.6.5.jar') \
    .getOrCreate()

# loading a test csv file
df = spark.read.csv('MOCK_DATA.csv', header=True, sep=',')

df.write.format("com.microsoft.kusto.spark.datasource")\
  .option("kustoCluster", "myclustername")\
  .option("kustoDatabase", "mydatabase")\
  .option("kustoTable", "mytable")\
  .option("kustoAadAppId", "myappid")\
  .option("kustoAadAppSecret", "mysecret")\
  .option("kustoAadAuthorityID", "myautorityid")\
  .mode("Append")\
  .save()

【问题讨论】:

    标签: azure pyspark azure-data-explorer


    【解决方案1】:

    在使用非 Maven 安装时,您需要使用包含所有依赖项的 JAR。 您可以从 github 版本中获取它: https://github.com/Azure/azure-kusto-spark/releases 或者如果它从特定版本中丢失,则通过克隆 repo 并运行来构建自己 mvn 组装:单个

    【讨论】:

    • 您好 Ohad Bitton,非常感谢您的回答。很抱歉回复晚了,我之前真的没有时间测试它。我已经下载了最新的发布源并运行了命令 mvn assembly:single。构建已成功完成,但生成的 JAR 在运行读取表命令时返回错误“java.lang.ClassNotFoundException: Failed to find data source: com.microsoft.kusto.spark.datasource”。我已经用 Spark 2.4.0、2.4.2、2.4.3 和 2.4.4 对其进行了测试。相同的代码适用于在 Spark 3.0 的存储库上发布的 JAR。但是我需要它适用于 Spark 2.4。
    • 嗨,对于迟到的回复也很抱歉 - 这似乎是一个安装问题,因为 2.4 JAR 和 3.0 JAR 的创建方式相同,请再次尝试使用最新版本的 JAR,并确保这是唯一加载的 JAR包含库
    • 另外,如果你自己做 - 确保生成的 JAR 包含连接器
    • 我已经成功地使用另一台计算机构建了一个工作 JAR 文件,谢谢!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-10-08
    相关资源
    最近更新 更多