保存后的Spark数据集计数
问题描述:
我使用spark从数据库中读取数据,并将其写入hdfs作为parquet文件。这是代码片段。保存后的Spark数据集计数
private long etlFunction(SparkSession spark){
spark.sqlContext().setConf("spark.sql.parquet.compression.codec", "SNAPPY");
Properties properties = new Properties();
properties.put("driver","oracle.jdbc.driver");
properties.put("fetchSize","5000");
Dataset<Row> dataset = spark.read().jdbc(jdbcUrl, query, properties);
dataset.write.format("parquet”).save("pdfs-path");
return dataset.count();
}
当我看到火花UI,写在我的下查询计划的书面记录,在SQL选项卡中看到的统计数据。
虽然伯爵本身是一项艰巨的任务。
有人可以建议以最优化的方式计算最佳方式。
要添加,有解决方案提到重复,涉及使用sparkListener计数。我大量重复使用sparkSession,因此实现起来会更加棘手。
感谢所有..
[Spark:如何获取写入行数?]可能重复(http://*.com/questions/37496650/spark-how-to-get-the-number-of-written-rows) – 2016-11-05 14:54:29