在spark sql

时间:2016-11-08 11:36:19

标签: mysql apache-spark spark-dataframe pyspark-sql

我是火花新手。在pyspark中提交有效查询后,我遇到了一个奇怪的问题 我的SQL查询是

spark.sql("
SELECT ID
     , ENTITYID
     , BldgID
     , LeaseID
     , SuiteID
     , TxnDate
     , IncomeCat
     , SourceCode
     , Period
     , Dept
     , ActualProjected
     , ((TChargeAmt1*TDays1)/(TTotalDays)+(TChargeAmt2*TDays2)/(TTotalDays)) as ChargeAmt 
     , OpenAmt
     , Invoice
     , CurrencyCode
     , GLClosedStatus
     , GLPostedStatus
     , PaidStatus
     , Frequency
     , RetroPD
     , FCWorkBook
     , FCLeaseNo
     , FCSuitID
     , TxnDateInt 
  FROM Fact_CMCharges f  
  JOIN TT  
    ON tt.TID = f.ID 
 WHERE tt.TID <> NULL
").show()

我的结果 enter image description here

这很好,然后我将这个数据帧保存在registerTempTable

spark.sql(" select ID, ENTITYID,BldgID,LeaseID,SuiteID,TxnDate,IncomeCat,SourceCode,Period,Dept,ActualProjected,((TChargeAmt1*TDays1)/(TTotalDays)+(TChargeAmt2*TDays2)/(TTotalDays)) as ChargeAmt ,OpenAmt,Invoice,CurrencyCode,GLClosedStatus,GLPostedStatus,PaidStatus,Frequency,RetroPD,FCWorkBook,FCLeaseNo,FCSuitID,TxnDateInt from Fact_CMCharges f FULL JOIN  TT  on TID=f.ID where TID<>null ").registerTempTable('testwithTID')

我的表格数据与我的dataframe字段值相同 现在出于测试目的,我已经测试了一些查询,如

spark.sql("select ID,ChargeAmt from testwithTID").show()

我的结果是

enter image description here

也很好。但是当我在表格上执行简单的查询时

spark.sql("select ID,ChargeAmt from testwithTID where ID=2740189134848").show()

我得到了这个

enter image description here

这对我来说似乎很奇怪和新鲜。表中没有丢失或不兼容的字段,但获取空白值实际上是意外的。请帮助我了解这种情况为何会发生以及可能的解决方案。我正在使用pyspark 2.0 提前致谢 格利扬

0 个答案:

没有答案