2
使用Spark我正在读取csv并希望将函数应用于csv上的列。我有一些可行的代码,但它非常黑客。什么是正确的方法来做到这一点?将函数应用于Spark中的csv的单个列
我的代码
SparkContext().addPyFile("myfile.py")
spark = SparkSession\
.builder\
.appName("myApp")\
.getOrCreate()
from myfile import myFunction
df = spark.read.csv(sys.argv[1], header=True,
mode="DROPMALFORMED",)
a = df.rdd.map(lambda line: Row(id=line[0], user_id=line[1], message_id=line[2], message=myFunction(line[3]))).toDF()
我希望能够只需拨打列名称的功能,而不是每一行映射到line
然后调用line[index]
功能。
我使用的Spark版本2.0.1
太好了,谢谢,不知道有'udf'存在。超级有用。 – Sal