我是火花新手。在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()
这很好,然后我将这个数据帧保存在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()
我的结果是
也很好。但是当我在表格上执行简单的查询时
spark.sql("select ID,ChargeAmt from testwithTID where ID=2740189134848").show()
我得到了这个
这对我来说似乎很奇怪和新鲜。表中没有丢失或不兼容的字段,但获取空白值实际上是意外的。请帮助我了解这种情况为何会发生以及可能的解决方案。我正在使用pyspark 2.0 提前致谢 格利扬