添加新的一列

df = df.withColumn('col_name', F.lit(2))
new_col_name :是新的一列的名字
F.lit(2):是全部都为 2 的一列

按行合并两个datafeame(两个df必须要有相同的columns)

df_concat = df1.union(df2)

将一行展开为多行

#将score按照 ',' 分割,然后对分割后的数组每个元素都 explode 为一行
df.withColumn('score', F.explode(F.split(df.score, ','))).show() 

根据条件设置列的值

import pyspark.sql.functions as F
df = df.withColumn('col_name', F.when(df.num < 100, 0).otherwise(df.num)) #将num列中,值小于100的设置为0,大于100保持不变

使用自定义函数

def myfunc(val):
    return float(3.23)
df = df.withColumn('col_name', F.udf(myfunc, returnType=DoubleType())('col_name')

 

 
 posted on 2021-07-28 23:26  boye169  阅读(274)  评论(0编辑  收藏  举报