Я экспериментировал с Quantlib и Спарк, пытаясь передать функцию Quantlib в Pyspark пример ниже:Pyspark UDF с помощью функции Quantlib
from QuantLib import *
from pyspark.sql.types import StringType
from pyspark.sql.functions import udf
df = sc.parallelize([("2016-10-01",),
("2016-11-01",),
("2016-12-01",)]).toDF(['someDate'])
testudf = udf(lambda x: str(DateParser.parseFormatted(x,'%Y-%m-%d')), StringType())
df.withColumn('new', testudf('someDate')).show()
Я не был успешным до сих пор, и было интересно, если кто-нибудь имеет лучше повезло.
Здесь ошибка я получаю:
typeError: in method 'DateParser_parseFormatted', argument 1 of type 'std::string const &'
at org.apache.spark.api.python.PythonRunner$$anon$1.read(PythonRDD.scala:193)
at org.apache.spark.api.python.PythonRunner$$anon$1.<init>(PythonRDD.scala:234)
.... и как, точно, у вас не было успеха ? –
Каков точный тип 'x', который передается лямбда внутри' udf'? Это строка Python или некоторый тип Spark? –
X будет искровой струной – ulrich