[英]Converting CassandraTableScanRDD org.apache.spark.rdd.RDD
我有以下情況。 我有一個很大的 Cassandra 表(有很多列),我想用 Spark 處理它。 我只想將選定的列加載到 Spark(在 Cassandra 服務器本身上應用選擇和過濾)
val eptable =
sc.cassandraTable("test","devices").select("device_ccompany","device_model","devi
ce_type")
上面的語句給出了一個 CassandraTableScanRDD 但我如何將它轉換為 DataSet/DataFrame ?
我還有其他方法可以對列進行服務器端過濾並獲取數據幀嗎?
在 DataStax Spark Cassandra Connector 中,您可以將 Cassandra 數據作為Dataset
讀取,並在服務器端修剪列,如下所示:
val df = spark
.read
.format("org.apache.spark.sql.cassandra")
.options(Map( "table" -> "devices", "keyspace" -> "test" ))
.load()
val dfWithColumnPruned = df
.select("device_ccompany","device_model","device_type")
請注意,我在閱讀后所做的selection
操作是使用 Catalyst 優化推送到服務器端的。 有關更多信息,請參閱此文檔。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.