CSV 到 RDD 到 Apache Spark 中的 Cassandra 存储

Posted

技术标签:

【中文标题】CSV 到 RDD 到 Apache Spark 中的 Cassandra 存储【英文标题】:CSV to RDD to Cassandra store in Apache Spark 【发布时间】:2014-10-16 12:49:47 【问题描述】:

我在一个 csv 文件中有一堆数据,我需要通过 spark 将这些数据存储到 Cassandra 中。 为此,我正在使用 spark 到 cassandra 连接器。 通常要存储到 Cassandra 中,我会创建一个 Pojo,然后将其序列化为 RDD,然后存储:

Employee emp = new Employee(1 , 'Mr', 'X');
JavaRDD<Employee>  empRdd = SparkContext.parallelize(emp);

最后我把这个写给 cassandra:

CassandraJavaUtil.javaFunctions(empRdd, Emp.class).saveToCassandra("dev", "emp");

这很好,但我的数据存储在csv 文件中。每行代表 cassandra 数据库中的一个元组。

我知道我可以读取每一行,拆分列,使用列值创建对象,将其添加到列表中,然后最终序列化整个列表。我想知道是否有更简单更直接的方法来做到这一点?

【问题讨论】:

【参考方案1】:

你可以只使用SSTableLoader for BulkLoading 并完全避免火花。 如果你依赖火花,那么我认为你不走运......虽然我不确定比逐行阅读和拆分行更容易......

【讨论】:

以上是关于CSV 到 RDD 到 Apache Spark 中的 Cassandra 存储的主要内容,如果未能解决你的问题,请参考以下文章

Spark SQL中 RDD 转换到 DataFrame

Spark SQL中 RDD 转换到 DataFrame (方法二)

转换CassandraTableScanRDD org.apache.spark.rdd.RDD

RDD[Array[String]] 到数据框

火花模式rdd到RDD

如何有效地将 MySQL 表读入 Apache Spark/PySpark?