添加新的一列
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')