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

pyspark: namespace in jar file not found

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

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

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

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

这是一个例子:

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