2015-09-23 44 views
0

代碼:如何獲得比賽的原始JSON行的副本registerTempTable後

rddWithJsonData:

[ 
     {"firstName":"John", "lastName":"Doe"}, 
     {"firstName":"Anna", "lastName":"Smith"}, 
     {"firstName":"Peter", "lastName":"Jones"} 
] 

sqlCtx.read.json(rddWithJsonData).registerTempTable("myTable") 
val df = sqlCtx.sql("select firstName from myTable where lastName='Doe'") 

電流:

df.show()

+---------------------+ 
| firstName   | 
+---------------------+ 
| John    | 
+---------------------+ 

我需要的:

+---------------------+----------------------------------------+ 
| firstName   | Original Json Row      | 
+---------------------+----------------------------------------+ 
| John    | {"firstName":"John", "lastName":"Doe"}| 
+---------------------+----------------------------------------+ 

如何獲得原始json數據行(匹配)以及已過濾的錶行?

結果在DataFrame中是必需的。

+1

什麼您_The原json_意思?用作輸入的JSON字符串?解析結構? – zero323

+0

@Sahil:你的過濾器在哪裏? 「mySqlQuery」是什麼意思? –

+0

@MartinSenne:更新 –

回答

1

由於您的問題有點含糊,請嘗試過濾並使用「!」反轉該過濾器,像

inputDf.filter(df("lastName") === "Doe") // fetches matches 
inputDf.filter(!df("lastName") === "Doe") // fetches no matching rows 

或SQL如下

val df = sqlCtx.sql("SELECT * FROM myTable WHERE lastName='Doe'")