【发布时间】:2015-09-17 03:09:19
【问题描述】:
我正在使用一个具有 1 个主节点和 2 个工作节点的 3 节点独立 spark 集群,以及一个 2 节点 cassandra 环,这是我正在尝试做的示例代码
SparkConf conf = new SparkConf(true);
SparkContext sc = new SparkContext(HOST, APP_NAME, conf);
String query = "Select address from " + CASSANDRA_KEYSPACE + "." + CASSANDRA_COLUMN_FAMILY + " where ras_ = '01'";
CassandraSQLContext sqlContext = new CassandraSQLContext(sc);
DataFrame resultsFrame = sqlContext.sql(query);
JavaRDD<Row> resultsRDD = resultsFrame.javaRDD();
JavaRDD<String> dataRDD = resultsRDD.map(row -> row.getString(0));
dataRDD.saveAsTextFile("output");
从System.out.println,我知道我有一些作为查询结果的数据,但在我的项目主页中,在output 目录中,我得到的唯一文件是_SUCCESS 和._SUCCESS.crc 和没有part-* 文件。这是预期的行为吗?如果没有,我哪里错了?
【问题讨论】:
-
尝试通过最小化示例来找出答案!如果删除
coalesce会发生什么?如果您使用sc.parallelize而不是 Cassandra 查询作为输入会发生什么? -
我已编辑并尝试最小化示例,并尝试使用/不使用
repartition/coalesce,以及使用collect将结果收集到列表中并使用并行化它sc.parallelize,仍然没有运气。在我的项目主页中创建了一个名为output的目录,其中只有_SUCCESS和._SUCCESS.crc -
我在写入本地文件时遇到了同样的问题。尝试写入 HDFS (dataRDD.saveAsTextFile(hdfs://...)) 或 Cassandra (dataRDD.saveToCassandra)
-
尝试保存到 hdfs 得到
Exception in thread "main" java.io.IOException: Incomplete HDFS URI, no host: hdfs:///user/root/output -
我让它使用格式为
hdfs://host:9000/output/directory的 url 与 hdfs 一起工作。谢谢!
标签: java cassandra apache-spark apache-spark-sql spark-cassandra-connector