[英]Cassandra to Hive using Spark
我有一個如下所示的cassandra表,並希望使用某些條件從cassandra中獲取記錄並將其放在配置單元表中。
Id Name Amount Time
1 abc 1000 2017041801
2 def 1000 2017041802
3 ghi 1000 2017041803
4 jkl 1000 2017041804
5 mno 1000 2017041805
6 pqr 1000 2017041806
7 stu 1000 2017041807
假定此表列是數據類型字符串。 我們在蜂巢中也有相同的架構。
現在我想將2017041801至2017041804之間的卡桑德拉記錄導入到蜂巢或hdfs。 在第二次運行中,我將基於上一次運行提取增量記錄。
我可以使用以下語法將Cassandra數據加載到RDD中。
val sc = new SparkContext(conf)
val rdd = sc.cassandraTable("mydb", "Employee")
現在我的問題是我如何才能根據之間的條件過濾此記錄,並將過濾后的記錄持久保存在配置單元或配置單元外部表路徑中。
不幸的是,我的時間列不是cassandra表中的聚簇鍵。 因此,我無法使用.where()子句。
我是這個scala和火花的新手。 因此,請提供有關此過濾器邏輯或使用數據框實現此邏輯的其他更好方法的幫助,請告訴我。
提前致謝。
這是您的案例的spark 2.0示例
val df = spark
.read
.format("org.apache.spark.sql.cassandra")
.options(Map( "table" -> "Employee", "keyspace" -> "mydb" ))
.load()
df.filter("time between 2017041801 and 2017041804")
.write.mode("overwrite").saveAsTable("hivedb.employee");
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.