使用lower()和upper()方法,将文本转换为大写或小写。
DF.select(month(col("date")).alias("month"))
.filter(lower(col("primaryType")).contains("homicide"))
使用contains()方法,过滤某列中包含特定关键字的数据。
DF.select(month(col("date")).alias("month"))
.filter(lower(col("primaryType")).contains("homicide"))
使用month() 和year()方法,从timestamp类型的数据中获取年份和月份。
from pyspark.sql.functions import month, col
DF.select(month(col("date")).alias("month"))
使用to_date()方法,将string转换为timestamp类型。
from pyspark.sql.functions import to_date, year, col
          
resultDF = (databricksBlog2DF.select("title", to_date(col("publishedOn"),"MMM dd, yyyy").alias('date'),"link") 
  .filter(year(col("publishedOn")) == '2013') 
  .orderBy(col("publishedOn"))
)
display(resultDF)
使用sized()方法获取数组cell中元素的个数。
from pyspark.sql.functions import size
display(databricksBlogDF.select(size("authors"),"authors"))
使用explode()方法按照某一个数组列,将一行数据拆分为多行。
from pyspark.sql.functions import explode
display(databricksBlogDF.select("title","authors",explode(col("authors")).alias("author"), "link"))
使用avg()方法获取平均数。
from pyspark.sql.functions import avg
avgSalaryDF = peopleDF.select(avg("salary").alias("averageSalary"))
avgSalaryDF.show()
使用round()方法取整,四舍五入。
from pyspark.sql.functions import round
roundedAvgSalaryDF = avgSalaryDF.select(round("averageSalary").alias("roundedAverageSalary"))
roundedAvgSalaryDF.show()
使用min(),max()方法获取最小值和最大值。
from pyspark.sql.functions import min, max
salaryDF = peopleDF.select(max("salary").alias("max"), min("salary").alias("min"), round(avg("salary")).alias("averageSalary"))
salaryDF.show()
使用agg()给count()方法取别名。
from pyspark.sql.functions import year, count
carenDF = peopleDF.filter("gender='F'").filter("firstName = 'Caren'").filter(year("birthDate") < 1980).agg(count("id").alias("total"))
display(carenDF)
使用desc()方法降序排列。
from pyspark.sql.functions import desc
PeopleWithFixedSalariesSortedDF = peopleWithFixedSalariesDF.orderBy(desc("salary"))
display(PeopleWithFixedSalariesSortedDF)