- 卡桑德拉2.1.12 - 3節點
- 火花1.6 - 3節點
- 火花卡桑德拉連接器1.6
我使用卡桑德拉(未的vnode)令牌。
我正在寫一個從卡桑德拉表讀取數據的簡單工作,並且顯示它的計數表有大約7000萬行,它需要15分鐘。
當我正在讀取數據並檢查RDD的分區數是在21000左右的某個地方太大。如何控制這個數字?
我試過splitCount
,split.size.in.mbs
但他們顯示了相同數量的分區。
有什麼建議嗎?
import org.apache.spark.{SparkContext, SparkConf}
import com.datastax.spark.connector._
import org.apache.spark.sql.cassandra.CassandraSQLContext
import org.apache.spark.sql.cassandra._
import org.apache.spark.sql
import java.sql.DriverManager
import java.sql.Connection
object Hi {
def main(args: Array[String])
{
val conf = new SparkConf(true).set("spark.cassandra.connection.host", "172.16.4.196").set("spark.cassandra.input.split.size_in_mb","64")
val sc = new SparkContext(conf)
val rdd = sc.cassandraTable("cw","usedcareventsbydatecookienew")
println("hello world" + rdd.partitions)
println("hello world" + rdd.count)
}
}
這是我的參考代碼。 我運行nodetool壓縮現在我能夠控制分區數量,但仍然整個過程需要近6分鐘,這是我認爲是太高任何改進建議
根據這個我應該有大約只有70個分區我的問題就解決了但它顯示了我21000分區和spark.cassandra.input.split.size_in_mb也是這樣做,我希望 – deenbandhu