在从其他列派生的数据框中添加新列(Spark)
作者:互联网
我正在使用Spark 1.3.0和Python.我有一个数据框,我希望添加一个从其他列派生的附加列.像这样,
>>old_df.columns
[col_1, col_2, ..., col_m]
>>new_df.columns
[col_1, col_2, ..., col_m, col_n]
哪里
col_n = col_3 - col_4
我如何在PySpark中执行此操作?
解决方法:
实现这一目标的一种方法是使用withColumn方法:
old_df = sqlContext.createDataFrame(sc.parallelize(
[(0, 1), (1, 3), (2, 5)]), ('col_1', 'col_2'))
new_df = old_df.withColumn('col_n', old_df.col_1 - old_df.col_2)
或者,您可以在已注册的表上使用SQL:
old_df.registerTempTable('old_df')
new_df = sqlContext.sql('SELECT *, col_1 - col_2 AS col_n FROM old_df')
标签:python,apache-spark,pyspark,apache-spark-sql 来源: https://codeday.me/bug/20191001/1838183.html