创建Session
1 | from pyspark.sql import SparkSession |
创建 DataFrame
1 | # method 1 |
架构,信息查看
1 | # 打印架构 |
Distinct 查找唯一值
1 | print(df.select('id').distinct().rdd.map(lambda r: r[0]).collect()) |
列操作
1 | # 选择列 |
1 | from pyspark.sql.functions import col, lit |
Sql
1 | df.createOrReplaceTempView("table") |
1 | from pyspark.sql.functions import when |
1 | spark = SparkSession.builder.appName("Python Spark SQL basic example").config("spark.some.config.option", "some-value").getOrCreate() |
UDF
1 | from pyspark.sql.functions import pandas_udf, PandasUDFType |
未解决的问题
P1
1 | from pyspark.sql import SparkSession |
- 不明白为何列名要用这种形式:[“`A.p1`“, “`B.p1`“],该问题已解决,在df.select里面,不用中括号也可以写成:df.select(‘A.p1’, ‘B.p1’)
- 不明白为什么2,3不工作