我正在尝试在PySpark DataFrame中对一些Unicode列进行一些NLP文本清理.我已经尝试过Spark 1.3,1.5和1.6,似乎无法让事情在我的生活中发挥作用.我也尝试过使用Python 2.7和Python 3.4.
我已经创建了一个非常简单的udf,如下所示,它应该为新列中的每个记录返回一个字符串.其他函数将操作文本,然后将更改的文本返回到新列中.
import pyspark
from pyspark.sql import SQLContext
from pyspark.sql.types import *
from pyspark.sql import SQLContext
from pyspark.sql.functions import udf
def dummy_function(data_str):
cleaned_str = 'dummyData'
return cleaned_str
dummy_function_udf = udf(dummy_function, StringType())
Run Code Online (Sandbox Code Playgroud)
这是我用来导入数据然后应用udf的代码.
# Load a text file and convert each line to a Row.
lines = sc.textFile("classified_tweets.txt")
parts = lines.map(lambda l: l.split("\t"))
training = parts.map(lambda p: (p[0], p[1]))
# Create dataframe
training_df = sqlContext.createDataFrame(training, ["tweet", "classification"])
training_df.show(5)
+--------------------+--------------+
| tweet|classification|
+--------------------+--------------+
|rt …
Run Code Online (Sandbox Code Playgroud)