pyspark.sql.SparkSession.sql
SparkSession。 sql ( sqlQuery:str,arg游戏:Dict [str,任何]= {},* *kwargs:任何 )→pyspark.sql.dataframe.DataFrameDataFrame代表给定查询的结果。当arg游戏指定,给定字符串代表一个参数化查询的参数解析查询后替换文本。当kwargs指定,这个方法使用Python标准格式给定字符串格式化程序之前解析查询字符串。

参数
sqlQuery str

SQL查询字符串。

arg游戏 Dict (str,任何)

一个字典的命名参数的开始:标记和相应的Python对象的值替换。(关于可接受的Python对象的更多细节,阅读火花SQL指南主题数据类型)。

注意:sql ()字典的值转换为文字表达的点燃()方法。

kwargs dict

用户想要的其他变量,可以在查询中引用。

添加可选参数kwargs查询中指定变量的映射。这个特性实验和不稳定。

返回
DataFrame

例子

执行一个SQL查询。

> > >火花sql(“SELECT * FROM范围(10)id > 7”)显示()+ - - - +| | id+ - - - +8 | |9 | |+ - - - +

执行一个SQL查询和一个整数参数。

> > >火花sql(“SELECT * FROM范围(10)id >: param”,arg游戏={7}“参数”:)显示()+ - - - +| | id+ - - - +8 | |9 | |+ - - - +

执行一个SQL查询字符串参数。

> > >火花sql(“SELECT *从员工那里的名字=:param”,arg游戏={“参数”:“约翰”})显示()+ - - - + - - - +| | | id名称+ - - - + - - - +约翰| 100 | |+ - - - + - - - +

执行一个SQL查询以变量为Python格式化程序标准。

> > >火花sql(“SELECT * FROM范围(10)id >{bound1}和id <{bound2},bound1=7,bound2=9)显示()+ - - - +| | id+ - - - +8 | |+ - - - +
> > >mydf=火花范围(10)> > >火花sql(“选择{坳}{mydf}在id{x},上校=mydfid,mydf=mydf,x=元组(范围(4)))显示()+ - - - +| | id+ - - - +| 0 || 1 || 2 || 3 |+ - - - +
> > >火花sql(“‘选择m1。,m2.b{table1}m1内连接{表}平方米m1。关键= m2.keyORDER BY m1。,m2.b”,表1=火花createDataFrame(((1,“一个”),(2,“b”)),(“一个”,“关键”]),表二=火花createDataFrame(((3,“一个”),(4,“b”),(5,“b”)),(“b”,“关键”)))显示()+ - - - + - - - +| | | b+ - - - + - - - +| 1 | 3 || 2 | 4 || 2 | 5 |+ - - - + - - - +

同时,可以查询使用类:DataFrame

> > >mydf=火花createDataFrame(((1,4),(2,4),(3,6)),(“一个”,“B”])> > >火花sql(“选择{df.A},{df [B]}{df},df=mydf)显示()+ - - - + - - - +| | | B+ - - - + - - - +| 1 | 4 || 2 | 4 || 3 | 6 |+ - - - + - - - +