我对以下方法中numpartitions
参数的行为感到困惑:
dataframereader.jdbc
dataset.repartition
dataframereader.jdbc
的官方文档对numpartitions
参数有以下说明
NumPartitions:分区的数量。这与lowerBound(包括)、upperBound(独占)一起,构成了用于平均拆分列columnName的生成WHERE子句表达式的分区步长。
和dataset.repartition
的官方文档
dataframereader.jdbc
方法中的
numpartition
参数控制从数据库读取数据的并行度
dataset.repartition
中的numpartition
参数控制将此dataframe
我的问题:
dataframeReader.jdbc
读取dataframe
,然后将其写入磁盘(不调用repartition
方法),那么在调用repartition
后将dataframe
写入磁盘的dataframe
时,输出中的文件还会像调用repartition
时那样多吗?numpartitions
是:那么在使用
dataframereader.jdbc
方法(带有
numpartitions
参数)读取的
dataframe
方法上调用
repartition
方法是否多余?
dataframereader.jdbc
方法的numpartitions
参数不应该被称为类似于“parallelism”吗?简而言之:这两种方法中numpartitions
参数的行为(几乎)没有区别
read.jdbc(...numpartitions..)
这里,NumPartitions
参数控制:
回答确切的问题:
如果我通过dataframereader.jdbc读取DataFrame,然后将其写入磁盘(不调用repartition方法),那么在调用了repartition之后,输出中的文件是否仍然与将DataFrame写入磁盘时的文件数量一样多?
是的
除非调用repartition
方法的其他变体(接受columnexprs
param的变体),否则对这样的dataframe
参数调用repartition
(numpartitions
)是多余的。但是,我不确定在已经并行化的dataframe
上强制相同程度的并行是否也会不必要地调用执行器
之间的数据洗牌。一旦我遇到答案就会更新。
我在这里浏览了文档:https://spark . Apache . org/docs/latest/API/python/py spark . SQL . html 它说: 重新分区:生成的DataFrame是哈希分区的 对于repartitionByRange:结果DataFrame是范围分区的 而且之前的一个问题也提到了。然而,我仍然不明白它们到底有什么不同,当选择一个而不是另一个时会有什么
本文向大家介绍分页和细分之间的区别,包括了分页和细分之间的区别的使用技巧和注意事项,需要的朋友参考一下 分页 分页是一种内存管理技术,其中,进程地址空间被分成大小相同的块,称为页面(大小为2的幂,介于512字节和8192字节之间)。进程的大小以页数为单位。类似地,将主存储器划分为称为帧的(物理)存储器的固定小块,并且将帧的大小与页面的大小保持相同,以最佳利用主存储器并避免外部碎片。 类似地,将主存
问题内容: 我错放了太多次了,我想我一直忘记,因为我不知道两者之间的区别,只是一个给了我我期望的价值,而另一个却没有。 为什么是这样? 问题答案: 是的简写形式(尽管请注意,该表达式只会被计算一次。) 是的,即指定一元的到。 例子:
问题内容: 因此,我有一段简单的代码可以打印出整数1-10: 然后,如果仅在第3行上更改一个运算符,它将打印出无限数量的1整数(我知道为什么会这样做)。为什么在运行第二个程序时没有出现语法错误?如果赋值运算符后面跟着一个加法运算符,它不会调用语法错误吗? 问题答案: 与相同, 只是意味着。
问题内容: 我有两个问题,可能需要一些帮助来理解它们。 和之间有什么区别?我知道这 意味着在单独的外壳中运行命令,然后将其传递给变量。有人可以帮助我理解这一点吗?如果我错了,请纠正我。 如果我们可以使用并且效果很好,那我为什么不能使用它呢?两者的执行周期有何不同? 问题答案: 语法是令牌级别的,因此美元符号的含义取决于其所在的令牌。表达式是现代代名词,代表命令替换;这意味着运行并将其输出放在此处。