我用下麵的代碼來創建火花會話並加載csv文件。火花會話和加載csv運行良好。然而SQL查詢生成解析例外。
% python
從pyspark。sql進口SparkSession
#創建一個SparkSession
火花= (SparkSession
.builder
.appName (“SparkSQLExampleApp”)
.getOrCreate ())
#道路數據集
csv_file = " dbfs: / mnt / Testing.csv”
#讀取和創建一個臨時的觀點
#推斷模式(注意,對於較大的文件
#可能希望指定模式)
df = (spark.read.format (csv)
.option (“inferSchema”,“真正的”)
.option(“頭”,“真正的”)
.load (csv_file))
df.createOrReplaceTempView (“US_CPSC_AEP_TBL”)
火花。sql(" " "選擇和(cast(招生浮動)),(cast(增長浮動),[計劃類型],[父組織],狀態,特殊需要的計劃,計劃名稱交會,
情況(計劃ID)之間的“800”和“899”然後“899”
其他的' 1 '
作為plan_id結束
從US_CPSC_AEP_TBL
(計劃名稱Sec)在哪裏不空嗎
group by父組織,計劃類型,狀態,特殊需要的計劃,計劃名稱交會,
情況(計劃ID)之間的“800”和“899”然後“899”
其他的' 1 '
結束
有筆(cast(招生浮動))= 0和總和(cast(增長浮動))= 0”“”)
這是解決。下麵的查詢工作好了
sqldf =火花。sql(“選擇總和(cast(招生浮動)),筆(cast(增長浮動),“計劃類型”,“父組織”狀態,“特殊需要的計劃”,“計劃名稱交會”,當“計劃ID”之間的“800”和“899”,“899 '其他' 1 '結束從US_CPSC_AEP_TBL plan_id在“計劃名稱交會”不是零group by父組織,計劃類型,狀態,“特殊需要的計劃”,“計劃名稱交會”,當“計劃ID”之間的“800”和“899”,“899 '其他' 1 '結束在總和(cast(招生浮動))= 0和總和(cast(增長浮動))= 0”)
這是解決。下麵的查詢工作好了
sqldf =火花。sql(“選擇總和(cast(招生浮動)),筆(cast(增長浮動),“計劃類型”,“父組織”狀態,“特殊需要的計劃”,“計劃名稱交會”,當“計劃ID”之間的“800”和“899”,“899 '其他' 1 '結束從US_CPSC_AEP_TBL plan_id在“計劃名稱交會”不是零group by父組織,計劃類型,狀態,“特殊需要的計劃”,“計劃名稱交會”,當“計劃ID”之間的“800”和“899”,“899 '其他' 1 '結束在總和(cast(招生浮動))= 0和總和(cast(增長浮動))= 0”)