小编dre*_*676的帖子

文本列上的Pyspark DataFrame UDF

我正在尝试在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)

python apache-spark apache-spark-sql pyspark pyspark-sql

13
推荐指数
2
解决办法
4万
查看次数