jar - pyspark:找不到 jar 文件中的命名空间

标签 jar pyspark namespaces warpscript

我正在尝试使用 PySpark 导入外部 jar 中的类,我正在运行带有 --jars 的 spark-shell 以及包含我想要使用的类的 jar 的路径。

但是,当我在代码中导入一个类时,找不到命名空间:

from io.warp10.spark import WarpScriptFilterFunction

错误:
 SLF4J: Actual binding is of type [org.slf4j.impl.Log4jLoggerFactory]
 Traceback (most recent call last):
   File "warp10-test.py", line 1, in <module>
     from io.warp10.spark import WarpScriptFilterFunction
 ImportError: No module named warp10.spark

最佳答案

如果您想运行 ,您必须使用 WarpScript™ UDF在 Spark 上。

下面是一个例子:

from pyspark.sql import SparkSession
from pyspark.sql import SQLContext
from pyspark.sql.types import StringType
from pyspark.sql.types import ArrayType

spark = SparkSession.builder.appName("WarpScript Spark Test").getOrCreate()
sc = spark.sparkContext

sqlContext = SQLContext(sc)

sqlContext.registerJavaFunction("foo", "io.warp10.spark.WarpScriptUDF3", ArrayType(StringType()))

print sqlContext.sql("SELECT foo('SNAPSHOT \"Easy!\"', 3.14, 'pi')").collect()

有关更多信息,请参阅:https://www.warp10.io/content/05_Ecosystem/04_Data_Science/06_Spark/02_WarpScript_PySpark

关于jar - pyspark:找不到 jar 文件中的命名空间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56475608/

相关文章:

C++ 如何让一个类依赖于一个命名空间,而那个命名空间又依赖于该类?

c++ - 如何选择正确的运算符重载

apache-spark - pySpark 本地模式 - 使用文件 :///vs relative path 加载文本文件

arrays - pandas_udf 对两个 ArrayType(StringType()) 字段进行操作

Java WindowBuilder -> 导出为 .jar(可运行或 Applet)

java - 如何从 jar :file URL? 构建路径

python - 如何根据 PySpark 中的数组值进行过滤?

c++ - 了解命名空间 using 指令

java - Java JAR 包含自己的依赖项是正确的还是不正确的?

java - 如何从库中检测应用程序已暂停(未终止)和已恢复(未创建)