我使用pyspark进行数据处理。在DataFrame中加载数据后,有些列有json编码的字符串,而我想参与其中。
我目前的代码:
def f(column_name):
import simplejson as json
column_list = json.loads(column_name)
return column_list[0] if column_list else ""
F = udf(f, StringType())
df = df.withColumn("new_A", F(df["A"]))
它将返回错误,如:
File "/usr/local/lib/python2.7/site-packages/simplejson/__init__.py", line 505, in loads
return _default_decoder.decode(s)
File "/usr/local/lib/python2.7/site-packages/simplejson/decoder.py", line 370, in decode
obj, end = self.raw_decode(s)
File "/usr/local/lib/python2.7/site-packages/simplejson/decoder.py", line 400, in raw_decode
return self.scan_once(s, idx=_w(s, idx).end())
如果我删除json部分但只是返回原始字符串,它就可以正常工作。
所以我猜pyspark中的导入包有错误,我该怎么做才能导入像simlejson,pickle这样的包......?
感谢。