我的数据框包含一个包含纯文本的字符串类型的列,我想使用<div ng-controller="loginController" class="container-fluid">
Login Page
</div>
(或pyspark.sql.functions.udf
?)来修改此列。
我在OSX 10.11.4上使用Python 2.7,Pyspark 1.6.1和Flask 0.10.1。
当我使用lambda表达式时似乎工作正常:
pyspark.sql.functions.UserDefinedFunction
一旦我尝试将lambda表达式移动到命名函数中:
@spark.route('/')
def run():
df = ... # my dataframe
myUDF = udf(lambda r: len(r), IntegerType())
df = df.withColumn('new_'+column, myUDF(df[column]))
return render_template('index.html', data=df.take(1000))
我收到以下错误:
def my_function(x):
return len(x)
@spark.route('/')
def run():
df = ... # my dataframe
myUDF = udf(my_function, IntegerType())
df = df.withColumn('new_'+column, myUDF(df[column]))
return render_template('index.html', data=df.take(1000))
已安装Numpy。删除mllib导入并没有解决问题。
答案 0 :(得分:0)
如果你在'run'函数体内声明'my_function'的所有主体,它通常会起作用。 否则我还没有找到如何像你的情况那样调用外部函数。