我需要检索 cassandra 表数据并将其保存到文件系统(linux 文件系统)。
该文件不应拆分为多个 Node ,而应在一个 Node 中创建。
我们有四个 Node (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。需要保存到单个 Node 的本地文件系统(linux)。
我关注了一些博客,但没有效果。有人可以指导解决这个问题吗?
最佳答案
输出位置需要可由 Spark 集群中的所有 Node 访问。您可以将位置映射为网络文件夹并将其指定为输出位置。
Spark 2+
results.write.csv(path_to_network_folder)
Spark 1.6 与 Scala 2.11
从 https://github.com/databricks/spark-csv 添加依赖项 spark-csv
像这样:
libraryDependency += "com.databricks"% "spark-csv_2.11"% "1.5.0"
代码看起来像这样:
results.write.format("com.databricks.spark.csv").save(path_to_network_folder)
关于node.js - 如何将spark rdd保存到csv文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46919539/