我有一个数据帧,我想写入Cassandra表。数据框由4,680,820行组成。数据本身来自.csv文件,大约650MB大小,并由来自datastax的spark Cassandra连接器读取。
然后,使用Spark Cassandra连接器将数据写入cassandra。连接器会写入记录但不是全部。它目前只写了17349条记录。我应该如何优化写入并写入所有460万条记录。我有8个Exeuctors,每个执行器有4个核心,所以今天有28个任务可以并行运行。
我正在使用Cassandra 3.0.13和Spark 2.1.0以及Spark Cassandra Connector:spark-cassandra-connector-assembly-2.0.1
这是我正在使用的代码:
def runCSVDataSourceImport(){
// Load the CM data into with SPARkSQL
val adErDF = spark.read
.format("com.databricks.spark.csv")
.option("header", "true")
.option("inferSchema", "true")
.load("file:///opt/risk-4.20170511.csv")
println("DF: adErDF ready to use")
println(adErDF.count);
val adErDFRepartition = adErDF.repartition(3)
adErDFRepartition.explain
writeToCassandra(adErDFRepartition, "risk_4");
}
以下方法调用上述方法。
$ awk '{for(i=2;i<=NF;i++)
if($i+0<50) {print $1": down"; next}
print $1": up"}' file
感谢