spark自定义函数,Spark sql 使用和dataFrame方式使用
#自定义函数名字
def convert_zdy(sex):
return "男" if sex == '1' else "女"
if __name__ == '__main__':
spark = SparkSession.builder.master("local[*]").appName("自定义函数").getOrCreate()
dataFrame = spark.read.json(r"D:\pythonProject\b.json")
dataFrame.createOrReplaceTempView("t_user")
#注册自定义函数
convert_dsl = spark.udf.register("convert",convert_zdy)
#spark SQL使用自定义函数
spark.sql("select name,age,convert(sex) sex from t_user").show()
import pyspark.sql.functions as F
#dsl使用自定义函数(方式1)需要接收udf的函数
dataFrame.select(F.col("name"),F.col("age"),convert_dsl (F.col("sex")).alias("sex")).show()
spark.stop()