我的 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 数据库中的一个元组。
我知道我可以读取每一行,拆分列,使用列值创建对象,将其添加到列表中,然后最终序列化整个列表。我想知道是否有更简单更直接的方法来做到这一点?
最佳答案
那么你可以使用 SSTableLoader for BulkLoading并完全避免 Spark 。 如果您依赖 Spark,那么我认为您运气不好...尽管我不确定比逐行阅读和拆分行要容易多少...
关于java - CSV 到 RDD 到 Apache Spark 中的 Cassandra 存储,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26404912/