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 |+ - - - + - - - +