在从其他列派生的数据框中添加新列(Spark)

发布于 2021-01-29 17:00:03

我正在使用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中做到这一点?

关注者
0
被浏览
50
1 个回答
  • 面试哥
    面试哥 2021-01-29
    为面试而生,有面试问题,就找面试哥。

    一种实现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')
    


知识点
面圈网VIP题库

面圈网VIP题库全新上线,海量真题题库资源。 90大类考试,超10万份考试真题开放下载啦

去下载看看