Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/apache-spark/6.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 2.3是否改变了处理小文件的方式?_Apache Spark_Pyspark_Bigdata_Apache Spark 2.0 - Fatal编程技术网

Apache spark Spark 2.3是否改变了处理小文件的方式?

Apache spark Spark 2.3是否改变了处理小文件的方式?,apache-spark,pyspark,bigdata,apache-spark-2.0,Apache Spark,Pyspark,Bigdata,Apache Spark 2.0,我刚开始玩Spark 2+2.3版本,在查看Spark UI时发现了一些奇怪的东西。 我在HDFS集群中有一个目录列表,总共包含24000个小文件 当我想对它们运行Spark操作时,Spark 1.5会为每个输入文件生成一个单独的任务,就像我以前使用的那样。我知道在我的例子中,每个HDFS块一个小文件就是一个块,在Spark中生成一个分区,每个分区由一个单独的任务处理 另外,命令my_dataframe.rdd.getNumPartitions输出24000 现在谈谈Spark 2.3 在同一输

我刚开始玩Spark 2+2.3版本,在查看Spark UI时发现了一些奇怪的东西。 我在HDFS集群中有一个目录列表,总共包含24000个小文件

当我想对它们运行Spark操作时,Spark 1.5会为每个输入文件生成一个单独的任务,就像我以前使用的那样。我知道在我的例子中,每个HDFS块一个小文件就是一个块,在Spark中生成一个分区,每个分区由一个单独的任务处理

另外,命令my_dataframe.rdd.getNumPartitions输出24000

现在谈谈Spark 2.3 在同一输入上,命令my_dataframe.rdd.getNumPartitions输出1089。Spark UI还为我的Spark操作生成1089个任务。您还可以看到,spark 2.3中生成的作业数比1.5中的多

这两个Spark版本的代码都是相同的,我需要稍微更改一下数据帧、路径和列名,因为这是源于工作的代码:

%皮斯帕克 dataframe=sqlContext\ 阅读\ 拼花地板到我的文件 dataframe.rdd.getNumPartitions 数据帧\ 其中COLCOL1==21379051&colcol2==2281643649&colcol3==229939942\ 选择col1、col2、col3\ show100,假 以下是由生成的物理计划

dataframe.where(...).select(...).explain(True)
火花1.5 ==实际计划== 过滤器col1=21379051&&col2=2281643649&&col3=229939942 扫描镶嵌[hdfs://cluster1ns/path_to_file][COL227、col229L、col330L] 代码生成:true 火花2.3 ==实际计划== *1项目[col10、col22L、col33L] +-*1筛选器不是空的col10&&col10=21383478&&col2=2281643641&&col3=229979603 +-*1 FileScan拼花[col1,col2,col3]批处理:false,格式:拼花,位置:InMemoryFileIndex[hdfs://cluster1ns/path_to_file...,PartitionFilters:[],PushedFilters:[IsNotNullcol1],ReadSchema:struct。。。。 以上工作是由齐柏林飞艇使用pyspark生成的。 还有其他人在使用spark 2.3时遇到过这种情况吗? 我不得不说,我喜欢处理多个小文件的新方法,但我也想了解可能的内部火花变化

我在互联网上搜索了一本最新的书《星火权威指南》,但没有找到任何关于星火产生就业计划的新方法的信息

如果你有任何链接或信息,将是有趣的阅读。 谢谢!

来自


|spark.files.maxPartitionBytes | 134217728 128 MB |读取文件时打包到单个分区中的最大字节数。

您能提供作业代码吗?Hi@AddMeans,我在帖子上下文中添加了代码。谢谢!代码非常简单。您能为两个版本的spark运行dataframe.explainTrue来测试code转换为一组不同的操作?好主意,我在select生成的数据帧上运行explainTrue。我用一些代码混淆2.x再次添加了物理计划。因此,这说明了分区的数量。