我在csv文件中有一堆数据,我需要通过spark存储到Cassandra中。 我正在使用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数据库中的元组。
我知道我可以读取每一行,拆分列,使用列值创建对象,将其添加到列表中,然后最终序列化整个列表。我想知道是否有更简单直接的方法来做到这一点?
答案 0 :(得分:0)
那么你可以使用SSTableLoader for BulkLoading并完全避免火花。 如果你依赖火花那么我认为你运气不好......虽然我不确定比逐行阅读更容易,但是甚至可以分割线......