
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()


















