开发和测试Python代码在本地机器上连接kafka流

时间:2021-01-08 12:13:03

标签: python apache-kafka databricks spark-structured-streaming azure-databricks

我是本地机器上的 Python 新手。到目前为止,我可以在 Azure Databricks 中编码。我想创建和部署连接到融合的 kafka 并将数据保存到增量表的库。 我很困惑 - 1] 我是否需要使用 python 从我的本地机器连接到 Databricks Delta 以将流存储到 delta 要么 通过如下设置将流存储到本地增量(我能够创建增量表)

spark = pyspark.sql.SparkSession.builder.appName("MyApp") \
    .config("spark.jars.packages", "io.delta:delta-core_2.12:0.7.0") \
    .config("spark.sql.extensions", "io.delta.sql.DeltaSparkSessionExtension") \
    .config("spark.sql.catalog.spark_catalog", "org.apache.spark.sql.delta.catalog.DeltaCatalog") \
    .getOrCreate()

并将 lib 部署到 databricks 中,当它运行时将指向 Databricks Delta

我也想使用 dbfs 文件存储连接到 kafka

.option("kafka.ssl.truststore.location", "/dbfs/FileStore/tables/test.jks") \

我是新手,请分享有关如何在 Python 中创建流应用程序的详细信息? 以及如何部署到 Databricks?

1 个答案:

答案 0 :(得分:0)

要在没有笔记本的情况下在 Databricks 上执行 Python 代码,您需要配置一个 job。正如 OneCricketeer 提到的,egg 是库的文件格式,您需要有一个 Python 文件作为作业的入口点 - 它将初始化 Spark 会话,然后调用您的库.

可以配置作业(您还需要上传库):

  1. 通过 UI,但仅限于配置笔记本和 jar,而不是 Python 代码。但是您仍然可以使用 spark-submit 选项运行 Python 代码。
  2. 通过 REST API - 使用它,您可以创建一个直接执行 Python 代码的作业
  3. 通过 command-line(在底层使用 REST API)并且您需要自己创建 JSON,与 REST API 的方式相同。
  4. 通过 Databricks Terraform Provider - 它还使用 REST API,但可以更轻松地在一个地方配置所有内容 - 上传库、将文件上传到 DBFS、创建/修改作业。

在Databricks上,Delta已经预装了,所以你不需要设置选项,指定maven坐标等等,所以你的初始化代码是:

spark = pyspark.sql.SparkSession.builder.appName("MyApp") \
    .getOrCreate()