1. import pyspark.sql.functions as F
    2. # 这么引入会报错
    3. # import pyspark.sql.functions.dense_rank
    4. from pyspark.sql import SparkSession
    5. if __name__ == "__main__":
    6. spark = SparkSession.builder.enableHiveSupport().getOrCreate()
    7. d = [{'name': 'Alice', 'age': 1},{'name': 'B', 'age': 2},{'name': 'C', 'age': 3}]
    8. frame = spark.createDataFrame(d)
    9. # 点击dense_rank并不能跳转,因为funxtions就没有这个方法
    10. # pyspark有额外的机制
    11. frame.withColumn("a",F.dense_rank())
    12. print(frame.collect())
    • pyspark中的引入方式与scala中引入方式不同
    • 不能直接用import pyspark.sql.functions.dense_rank,会报错
    • 可以按照样例来导入和使用
    • pyspark中所谓的额外机制 ,可以参考其_create_window_function方法