udf
from pyspark.sql import SparkSession from pyspark.sql.types import StructField, StructType, StringType, IntegerType, LongType,ArrayType from pyspark.sql import functions as F spark = SparkSession.builder.appName("get_app_category").enableHiveSupport().\ config("spark.driver.host", "localhost").config("spark.debug.maxToStringFields", "100").getOrCreate() df = spark.createDataFrame([('数学', '张三', 88), ('语文', '张三', 92), ('英语', '张三', 77), ('数学', '王五', 65), ('语文', '王五', 87), ('英语', '王五', 90), ('数学', '李雷', 67), ('语文', '李雷', 33), ('英语', '李雷', 24), ('数学', '宫九', 77), ('语文', '宫九', 87), ('英语', '宫九', 90) ], ['subject', 'name', 'score']) df.show() spark.udf.register("is_good",lambda x:'good' if x>=85 else 'bad',StringType()) df.createOrReplaceTempView('t1') spark.sql('select subject,name,score,is_good(score) as is_good from t1').show()