Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/apache-spark/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python ImportError:databricks pyspark中没有名为“kafka”的模块_Python_Apache Spark_Pyspark_Databricks - Fatal编程技术网

Python ImportError:databricks pyspark中没有名为“kafka”的模块

Python ImportError:databricks pyspark中没有名为“kafka”的模块,python,apache-spark,pyspark,databricks,Python,Apache Spark,Pyspark,Databricks,我无法使用databricks笔记本中的卡夫卡图书馆 获取错误 ImportError:没有名为“kafka”的模块 databricks群集信息 spark版本-2.4.3 scala版本-2.11 帮帮我。提前感谢。文件不在正确的目录中,或位置不正确。或者,您从未安装过它,但我认为这不是一个可下载的模块。您需要确保python依赖项在所有executor节点上都可用。 有以下几种选择: 在启动群集之前,请在所有executor节点上运行引导包安装脚本。例如,在所有节点上运行pip安装kafk

我无法使用databricks笔记本中的卡夫卡图书馆

获取错误 ImportError:没有名为“kafka”的模块

databricks群集信息

spark版本-2.4.3

scala版本-2.11


帮帮我。提前感谢。

文件不在正确的目录中,或位置不正确。或者,您从未安装过它,但我认为这不是一个可下载的模块。

您需要确保python依赖项在所有executor节点上都可用。 有以下几种选择:

在启动群集之前,请在所有executor节点上运行引导包安装脚本。例如,在所有节点上运行pip安装kafka。最好使用依赖关系管理解决方案

b在本地安装软件包。使用pyspark选项之一将从属项传送到节点: -py文件,-存档

用pex将完整的python解释器与所有本地安装的依赖项打包在一起。将spark配置为从打包的pex归档文件中使用python解释器


请参阅Spark用户指南:

而不是这样做-这非常低效,只需使用,就像这样,您需要首先将数据转换为JSON字符串:

从pyspark.sql.functions导入到_json,struct df.selectto_jsonstruct*.aliasvalue\ .write.kafka\ .optionkafka.bootstrap.servers,主机1:port1,主机2:port2\ .选项图,主题1\ 拯救
是的,它没有安装。它是一个名为kafka的python包。官方的python kafka客户端。但问题是我也无法从kafka python官方文档下载它。@AjayKumar你试过pip吗?这不是Spark/Databricks的工作方式…@AlexOtt Oh…得到错误@Alex Ott SyntaxError:无效的语法文件,第4行。write.formatkafka^ SyntaxError:无效的syntaxfixed-忘记在一个位置添加“``现在出现错误:java.lang.NoClassDefFoundError:org/apache/spark/sql/connector/catalog/TableProvider您使用的是什么数据桥运行时?或者你用的是轻版?仅使用普通的Databricks运行时-例如7.x-代码肯定在那里工作
from kafka import KafkaProducer
def send_to_kafka(rows):
    producer = KafkaProducer(bootstrap_servers = "localhost:9092")
    for row in rows:
        producer.send('topic', str(row.asDict()))  
        producer.flush()

df.foreachPartition(send_to_kafka)