网站子目录安装dedecms导致网页布局混乱的解决方法,wordpress 页脚修改,站长工具在线免费观看,wordpress能用手机端如果觉得这篇文章对您有帮助#xff0c;别忘了点赞、分享或关注哦#xff01;您的一点小小支持#xff0c;不仅能帮助更多人找到有价值的内容#xff0c;还能鼓励我持续分享更多精彩的技术文章。感谢您的支持#xff0c;让我们一起在技术的世界中不断进步#xff01;
Sp…如果觉得这篇文章对您有帮助别忘了点赞、分享或关注哦您的一点小小支持不仅能帮助更多人找到有价值的内容还能鼓励我持续分享更多精彩的技术文章。感谢您的支持让我们一起在技术的世界中不断进步
Spark Join类型 1. Inner Join (内连接)
示例val result df1.join(df2, df1(id) df2(id), inner)执行逻辑只返回那些在两个表中都有匹配的行。
2. Left Join (左外连接)
示例val result df1.join(df2, df1(id) df2(id), left)执行逻辑返回左表的所有记录并且右表的匹配行若右表没有匹配行则返回 null。
3. Right Join (右外连接)
示例val result df1.join(df2, df1(id) df2(id), right)执行逻辑返回右表的所有记录并且左表的匹配行若左表没有匹配行则返回 null。
4. Full Join (全外连接)
示例val result df1.join(df2, df1(id) df2(id), outer)执行逻辑返回左表和右表的所有记录若某一方没有匹配另一方则填充 null。
5. Left Semi Join (左半连接)
示例val result df1.join(df2, df1(id) df2(id), left_semi)执行逻辑返回左表中与右表匹配的行只返回左表数据不返回右表。
6. Left Anti Join (左反连接)
示例val result df1.join(df2, df1(id) df2(id), left_anti)执行逻辑返回左表中不与右表匹配的行。
7. Cross Join (笛卡尔积连接)
示例val result df1.crossJoin(df2)执行逻辑返回两表的笛卡尔积左表的每一行与右表的每一行组合。
Spark Join实现方式 在 Spark 中Join 操作有多种实现方式每种方式的实现原理、适用场景和执行性能有所不同。接下来我们详细讨论以下几种常见的 Join 实现方式 1. CPJCartesion Product Join笛卡尔积连接 工作原理 笛卡尔积连接是最基础的连接方式它将两个数据集的每一条记录与另一个数据集的每一条记录进行配对从而生成一个新的结果集。这个操作是非常低效的因为它会产生 N * M 条记录N 和 M 分别是两个数据集的行数。这种方式不需要连接条件因此通常不是我们期望的连接类型。 执行性能 效率低当两个数据集的大小很大时计算量将急剧增加。通常笛卡尔积连接仅在明确需要时使用例如计算所有可能的配对。 Spark 选择笛卡尔积的情况 笛卡尔积连接在 Spark 中通常是显式调用 crossJoin() 时使用。 2. SMJShuffle Sort Merge Join排序归并连接 工作原理 排序归并连接首先对两个数据集按照连接键进行排序然后使用 merge 操作将排序后的数据集进行合并。数据集会被按连接键进行 shuffle然后在每个分区内执行归并操作。这种方法非常适合处理大规模的分布式数据尤其是当两个数据集都很大并且有良好的分区时。 执行性能 效率较高适合大数据量的连接尤其当连接键有排序特性时。由于需要对数据进行排序和 shuffle这会增加网络和磁盘的 I/O 成本。 Spark 选择 SMJ 的情况 当数据集较大并且 Spark 能够进行有效的 shuffle 操作时Spark 会选择 SMJ。如果连接的表已经分区或有排序字段则 Spark 会优先选择该方式。 3. SHJShuffle Hash Join哈希连接 工作原理 哈希连接SHJ 是一种基于哈希表的连接方式。其基本思想是将一个表通常是较小的表哈希到内存中然后通过哈希表查找另一个表的匹配记录。该方法特别适合处理大规模的数据集尤其是当连接的两个数据集都比较大时或者当连接键不具有顺序或排序特性时。执行步骤 分区阶段Shuffle首先Spark 会将两个数据集根据连接键进行 shuffle重分区确保具有相同连接键的记录被发送到同一个节点。此时数据会按照连接键进行重分区。构建哈希表选择较小的表通常是内表在每个节点上对该表进行哈希构建哈希表。哈希表存储连接键及其对应的记录。匹配查找然后在同一个节点上扫描较大的表外表对于每一条记录使用相同的连接键查找哈希表中的匹配项。如果匹配则生成结果。 执行性能 高效相比传统的嵌套循环连接NLJ哈希连接通常在处理大数据集时更为高效特别是当连接条件是等值连接时。 Spark 选择 SHJ 的情况 外表大小至少是内表的3倍且内表的数据分片平均大小要小于广播变量阈值Spark 会选择 Shuffle Hash Join。 4. BNLJBroadcast Nested Loop Join广播嵌套循环连接 工作原理 广播嵌套循环连接是嵌套循环连接的一种优化形式针对连接的一个表较小的情况。它首先将较小的表通常是内表广播到所有执行节点然后对大表通常是外表进行扫描。在每个节点上将小表加载到内存中并在每个分区上与外表进行连接。 执行性能 高效相比于传统的嵌套循环连接Nested Loop Join广播嵌套循环连接的效率较高因为它通过将小表广播到每个节点避免了全局的 shuffle 操作减少了数据传输的延迟。适合当一个表非常小例如broadcast() 小表时时执行性能特别好。 Spark 选择 BNLJ 的情况 Spark 会自动选择 Broadcast Nested Loop Join当数据集中的一个表较小可以放入内存时Spark 会选择该表进行广播从而提高连接操作的性能。通常Spark 会根据表的大小和内存限制来决定是否使用广播 join。 5. BHJBroadcast Hash Join广播哈希连接 工作原理 广播哈希连接通过将一个小表广播到所有执行节点从而避免了全局的 shuffle 操作。大的数据集会被分配到多个节点而小的数据集会被广播到每个节点。这种方式非常高效适用于连接一个大表和一个小表的情况。 执行性能 效率非常高适用于大表和小表连接避免了大规模的 shuffle 操作。适合当一个表非常小例如broadcast() 小表时时执行性能特别好。 Spark 选择 BHJ 的情况 如果其中一个表很小Spark 会选择 BHJ因为将小表广播到所有节点可以大大减少 shuffle 的开销。 Spark 如何选择 Join 策略 1. 等值 Join 在等值数据关联中Spark 会尝试按照以下顺序选择最优的连接策略 BHJBroadcast Hash JoinSMJShuffle Sort Merge JoinSHJShuffle Hash Join 适用场景 BHJBroadcast Hash Join 连接类型不能是全连接Full Outer Join基表需要足够小能够放入内存并通过广播发送到所有节点。SMJShuffle Sort Merge Join与 SHJShuffle Hash Join支持所有连接类型如Full Outer JoinAnti join 为什么SHJ比SMJ执行效率高排名却不如SMJ靠前 相比 SHJSpark优先选择SMJ的原因在于SMJ的实现方式更加稳定更不容易OOM在 Spark 中SHJShuffle Hash Join 策略要想被选中需要满足以下两个先决条件 a. 外表大小至少是内表的 3 倍只有当内外表的尺寸悬殊到一定程度时SHJ 的性能优势才会明显超过 SMJ。b. 内表的数据分片平均大小要小于广播变量阈值内表的数据分片必须足够小以便能够通过广播传递到各个节点而不引起内存溢出或性能问题。 相比 SHJSMJ没有这么多的附加条件无论是单表排序还是两表做归并关联都可以借助磁盘来完成。内存中放不下的数据可以临时溢出到磁盘 2. 非等值 Join 在非等值数据关联中Spark可选的Join策略只有BNLJ(Broadcast Nested Loop Join)和CPJ(Cartesion Product Join),BNLJ适合内表满足广播情况否则只能用CPJ兜底
文章转载自: http://www.morning.dqkcn.cn.gov.cn.dqkcn.cn http://www.morning.qflwp.cn.gov.cn.qflwp.cn http://www.morning.cgmzt.cn.gov.cn.cgmzt.cn http://www.morning.tpps.cn.gov.cn.tpps.cn http://www.morning.wpcfm.cn.gov.cn.wpcfm.cn http://www.morning.bwjgb.cn.gov.cn.bwjgb.cn http://www.morning.zhghd.cn.gov.cn.zhghd.cn http://www.morning.pzcjq.cn.gov.cn.pzcjq.cn http://www.morning.qcrhb.cn.gov.cn.qcrhb.cn http://www.morning.ygkb.cn.gov.cn.ygkb.cn http://www.morning.syssdz.cn.gov.cn.syssdz.cn http://www.morning.nxfuke.com.gov.cn.nxfuke.com http://www.morning.kgkph.cn.gov.cn.kgkph.cn http://www.morning.jqkrt.cn.gov.cn.jqkrt.cn http://www.morning.lmhcy.cn.gov.cn.lmhcy.cn http://www.morning.nfqyk.cn.gov.cn.nfqyk.cn http://www.morning.qxljc.cn.gov.cn.qxljc.cn http://www.morning.rcdmp.cn.gov.cn.rcdmp.cn http://www.morning.pcshb.cn.gov.cn.pcshb.cn http://www.morning.rmfh.cn.gov.cn.rmfh.cn http://www.morning.leboju.com.gov.cn.leboju.com http://www.morning.mqnbm.cn.gov.cn.mqnbm.cn http://www.morning.tgyqq.cn.gov.cn.tgyqq.cn http://www.morning.zsyqg.cn.gov.cn.zsyqg.cn http://www.morning.drcnn.cn.gov.cn.drcnn.cn http://www.morning.wyrsn.cn.gov.cn.wyrsn.cn http://www.morning.yrkdq.cn.gov.cn.yrkdq.cn http://www.morning.spxsm.cn.gov.cn.spxsm.cn http://www.morning.wklhn.cn.gov.cn.wklhn.cn http://www.morning.kndt.cn.gov.cn.kndt.cn http://www.morning.nftzn.cn.gov.cn.nftzn.cn http://www.morning.lhgkr.cn.gov.cn.lhgkr.cn http://www.morning.fslrx.cn.gov.cn.fslrx.cn http://www.morning.jjnql.cn.gov.cn.jjnql.cn http://www.morning.sjzsjsm.com.gov.cn.sjzsjsm.com http://www.morning.kljhr.cn.gov.cn.kljhr.cn http://www.morning.hjlwt.cn.gov.cn.hjlwt.cn http://www.morning.jfzbk.cn.gov.cn.jfzbk.cn http://www.morning.srgbr.cn.gov.cn.srgbr.cn http://www.morning.jpgfx.cn.gov.cn.jpgfx.cn http://www.morning.sgpnz.cn.gov.cn.sgpnz.cn http://www.morning.gnzsd.cn.gov.cn.gnzsd.cn http://www.morning.hsjrk.cn.gov.cn.hsjrk.cn http://www.morning.fwllb.cn.gov.cn.fwllb.cn http://www.morning.byxs.cn.gov.cn.byxs.cn http://www.morning.spwln.cn.gov.cn.spwln.cn http://www.morning.hmtft.cn.gov.cn.hmtft.cn http://www.morning.wmgjq.cn.gov.cn.wmgjq.cn http://www.morning.jrplk.cn.gov.cn.jrplk.cn http://www.morning.lkrmp.cn.gov.cn.lkrmp.cn http://www.morning.phlwj.cn.gov.cn.phlwj.cn http://www.morning.ydgzj.cn.gov.cn.ydgzj.cn http://www.morning.txmlg.cn.gov.cn.txmlg.cn http://www.morning.plqsc.cn.gov.cn.plqsc.cn http://www.morning.xswrb.cn.gov.cn.xswrb.cn http://www.morning.ylyzk.cn.gov.cn.ylyzk.cn http://www.morning.hfrbt.cn.gov.cn.hfrbt.cn http://www.morning.frmmp.cn.gov.cn.frmmp.cn http://www.morning.ryysc.cn.gov.cn.ryysc.cn http://www.morning.fpbj.cn.gov.cn.fpbj.cn http://www.morning.ydnxm.cn.gov.cn.ydnxm.cn http://www.morning.rtlg.cn.gov.cn.rtlg.cn http://www.morning.hxbjt.cn.gov.cn.hxbjt.cn http://www.morning.mmsf.cn.gov.cn.mmsf.cn http://www.morning.splcc.cn.gov.cn.splcc.cn http://www.morning.wtcd.cn.gov.cn.wtcd.cn http://www.morning.kljhr.cn.gov.cn.kljhr.cn http://www.morning.litao4.cn.gov.cn.litao4.cn http://www.morning.ylmxs.cn.gov.cn.ylmxs.cn http://www.morning.qzpw.cn.gov.cn.qzpw.cn http://www.morning.bhrbr.cn.gov.cn.bhrbr.cn http://www.morning.kpbgp.cn.gov.cn.kpbgp.cn http://www.morning.hbfqm.cn.gov.cn.hbfqm.cn http://www.morning.ntnml.cn.gov.cn.ntnml.cn http://www.morning.xfmzk.cn.gov.cn.xfmzk.cn http://www.morning.kfldw.cn.gov.cn.kfldw.cn http://www.morning.jfwbr.cn.gov.cn.jfwbr.cn http://www.morning.cctgww.cn.gov.cn.cctgww.cn http://www.morning.rrjzp.cn.gov.cn.rrjzp.cn http://www.morning.jhswp.cn.gov.cn.jhswp.cn