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
SKEW-join提示的Spark-Scala等价物_Scala_Apache Spark - Fatal编程技术网

SKEW-join提示的Spark-Scala等价物

SKEW-join提示的Spark-Scala等价物,scala,apache-spark,Scala,Apache Spark,Spark SQL提供了一个倾斜提示(请参阅)。对于Spark Scala是否有类似的提示 示例 这是Spark SQL代码,其中事实表扭曲了ProductId列: SELECT /*+ SKEW('viewFact', 'ProductId') */ RevSumDivisionName, RevSumCategoryName, CloudAddOnFlag, SUM(ActualRevenueAmt) AS RevenueUSD, COUNT(*) AS Cnt FROM v

Spark SQL提供了一个倾斜提示(请参阅)。对于Spark Scala是否有类似的提示

示例 这是Spark SQL代码,其中事实表扭曲了ProductId列:

SELECT /*+ SKEW('viewFact', 'ProductId') */
    RevSumDivisionName, RevSumCategoryName, CloudAddOnFlag,
    SUM(ActualRevenueAmt) AS RevenueUSD, COUNT(*) AS Cnt
FROM viewFact
INNER JOIN viewPMST ON viewFact.ProductId = viewPMST.ProductId
INNER JOIN viewRsDf ON viewPMST.ProductFamilyId = viewRsDf.ProductFamilyId
INNER JOIN viewRevH ON viewRsDf.RevSumCategoryId = viewRevH.RevSumCategoryId
GROUP BY RevSumDivisionName, RevSumCategoryName, CloudAddOnFlag
Scala中的相同连接:

inFact
   .join(inPMst, Seq("ProductId"))
   .join(inRsDf, Seq("ProductFamilyId"))
   .join(inRevH, Seq("RevSumCategoryId"))
.groupBy($"RevSumDivisionName", $"RevSumCategoryName", $"CloudAddOnFlag")
.agg(sum($"ActualRevenueAmt") as "RevenueUSD", count($"*") as "Cnt")
我只是找不到倾斜提示的语法

Spark SQL提供了一个倾斜提示

事实并非如此。Databricks平台有,但它是Spark中不可用的专有扩展(与索引相同)

我只是找不到倾斜提示的语法

一般情况下,查询计划提示是使用
hint
方法传递的,该方法可以这样使用

val hint: String = ???
inFact.join(inPMst.hint(hint),  Seq("ProductId")))

感谢您的推荐和纠正我的假设
val提示:String=“SKEW('viewFact','ProductId')”
起作用;请将其添加到您的答案中并声明解决方案?是否有关于如何使用提示的示例(在databricks平台之外)?