Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/apache-spark/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Apache spark 稍微复杂一点的Spark字数_Apache Spark - Fatal编程技术网

Apache spark 稍微复杂一点的Spark字数

Apache spark 稍微复杂一点的Spark字数,apache-spark,Apache Spark,我有一个文件位置的大列表。我想从这些位置读取拼花地板,按列分组,进行计数,并按键减少 var commaDelim = spark.sparkContext.textFile("s3://some_location") var locs = commDelim.flatmap(l => l.split(",")) locs.map(loc => spark.read.parquet(loc).groupBy("col").c

我有一个文件位置的大列表。我想从这些位置读取拼花地板,按列分组,进行计数,并按键减少

var commaDelim = spark.sparkContext.textFile("s3://some_location")
var locs = commDelim.flatmap(l => l.split(","))
locs.map(loc => spark.read.parquet(loc).groupBy("col").count ...

不确定如何将计数数据帧转换为可以按键减少的格式。

将列表文件直接传递到
拼花
功能,如下所示

val locs = [file1,file2,file3,...]

我试过了,但文件列表对于驱动程序来说太大了…无论您传递什么,文件列表都是在集群上加载和处理的,而不是在驱动程序节点上。
spark.read.parquet(locs:_*)
.select("col")
.as[String]
.flatMap(value => value.split("\\s+"))
.groupBy($"value")
.agg(count("*").as("count"))
.show(false)