我需要检索cassandra表数据并将其保存到文件系统(linux文件系统)。
文件不应拆分为多个节点,应该在一个节点中创建。
我们有四个节点(datastax)cassandra集群以spark模式运行。 dse版本:5.0.1 Spark版本:1.6.1
这是我的示例代码:
val sc = new SparkContext(conf)
val sqlContext1 = new CassandraSQLContext(sc);
sqlContext1.setKeyspace("KeyspaceName");
val results = sqlContext1.sql("SELECT * FROM KeyspaceName.TableName");
results.collect().foreach(println);
现在结果RDD。需要在一个节点中保存到本地文件系统(linux)。
我关注了一些博客,但没有奏效。有人可以指导解决这个问题吗?
答案 0 :(得分:0)
您的spark群集中的所有节点都需要访问输出位置。您可以将位置映射为网络文件夹,并将其指定为输出位置。
Spark 2 +
results.write.csv(path_to_network_folder)
使用Scala 2.11的Spark 1.6
从https://github.com/databricks/spark-csv添加依赖项spark-csv
,如下所示:
libraryDependencies += "com.databricks" % "spark-csv_2.11" % "1.5.0"
代码看起来像这样:
results.write.format("com.databricks.spark.csv").save(path_to_network_folder)