Применить функцию к одному столбцу CSV в Spark
Используя Spark, я читаю CSV и хочу применить функцию к столбцу в 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