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