我使用Cassandra 2.0.9在一个列系列中存储相当大的数据量,比如说100‘s。我想以快速的方式将此数据导出到CSV。我试过了:
我使用亚马逊Ec2实例,存储速度快,内存15 Gb,内核4核
将千兆字节的数据从Cassandra导出到CSV还有更好的选择吗?
发布于 2020-06-11 15:54:08
发布于 2015-01-20 01:10:11
因为当您尝试从Cassandra中导出一个包含数百万行的表时,使用COPY将非常具有挑战性,所以我所做的是创建一个简单的工具来从cassandra表中逐块(分页)获取数据块,并将其导出到CSV。
使用来自datastax的java库查看我的example solution。
发布于 2020-01-21 19:04:18
受@user1859675答案的启发,下面是我们如何使用Spark从Cassandra导出数据
val cassandraHostNode = "10.xxx.xxx.x5,10.xxx.xxx.x6,10.xxx.xxx.x7";
val spark = org.apache.spark.sql.SparkSession
.builder
.config("spark.cassandra.connection.host", cassandraHostNode)
.appName("Awesome Spark App")
.master("local[*]")
.getOrCreate()
val dataSet = spark.read.format("org.apache.spark.sql.cassandra")
.options(Map("table" -> "xxxxxxx", "keyspace" -> "xxxxxxx"))
.load()
val targetfilepath = "/opt/report_values/"
dataSet.write.format("csv").save(targetfilepath) // Spark 2.x
您需要在类路径中使用"spark-cassandra-connector
“才能正常工作。
我使用的版本如下
<groupId>com.datastax.spark</groupId>
<artifactId>spark-cassandra-connector_2.11</artifactId>
<version>2.3.2</version>
https://stackoverflow.com/questions/24896336
复制相似问题