1
一個子集,如果我有電子郵件地址,像這樣從蜂巢數據幀:創建的數據幀
email_address user_id
[email protected] 2134
null 2133
[email protected] 2132
[email protected] 21
[email protected] 213
[email protected] 21388
null 22
null 2134
我要創建兩個dataframes(裏面有所有的USER_ID與電子郵件,爲空一個dataframes和它擁有所有的user_id與那些不爲空電子郵件的其他數據幀)事情是這樣的:
First Dataframe: Second Dataframe:
[email protected] 2134 null 22
[email protected] 2132 null 2134
[email protected] 21 null 2133
[email protected] 213
[email protected] 21388
我有下面這段代碼:
val sparkConf = new SparkConf().setAppName("YOUR_APP_NAME").setMaster("local[10]")
val sc = new SparkContext(sparkConf)
val sqlContext = new SQLContext(sc)
val hiveContext = new HiveContext(sc)
hiveContext.setConf("hive.metastore.uris", "METASTORE_URI_NAME_HERE")
val df = hiveContext.sql("SELECT email,user_id FROM USERS")
df.map{ row =>
if row.getString(0).length > 0 {
//ADD INTO "First Dataframe"
//row.getString(0) = email, row.getString(1) = user_id
}else {
//ADD INTO "First Dataframe"
//row.getString(0) = email, row.getString(1) = user_id
}
}
我不確定是否需要創建一個全新的Dataframe,或者我會如何在第一個位置執行此操作。任何指針?
是將'df'變量轉換爲rdd然後過濾掉所有非空的電子郵件地址並將該rdd轉換爲數據框的選項之一。然後過濾出所有空(從原始rdd)的電子郵件地址,並將該rdd轉換爲數據框?所以我會有兩個數據框。 – CapturedTree