添加自定义操作星火SQL

问题描述:

我想加上星火SQL新的操作,我已经使用了形式添加自定义操作星火SQL

dataframe.filter(udf("$a", "$b")) 

我需要添加类似功能的用户自定义功能,但在两个dataFrames操作,对于例如添加功能,如:

dataframe1.udf(dataframe2)) 

为了更精确,则该函数是在两个dataframes优化的联接。

实际的代码

CustomJoin(dataframe1,dataframe2) 

这可能使用用户定义的函数?任何其他解决方案或例子?

+0

能你对你确切想要做什么更具体? – mtoto

+0

显然,阅读链接。这不可能。我想写一个自定义连接。实际上,代码的工作方式就像'CustomJoin(df1,df2)'。我的目标是像这样改变它'df1.CustomJoin(df2)' – syl

+0

你能提供示例数据,代码和预期输出吗?截至目前,您的问题仍然过于宽泛。 – mtoto

您可以使用隐含了这一点:

class AugmentedDataFrame(val df: DataFrame) { 
    def CustomJoin(df2: Dataframe){ ......} 
} 

object DataFrameImplicits { 
    implicit def dfToAugmentedDataFrame(df: DataFrame) = new AugmentedDataFrame(df) 
} 

然后:

import DataFrameImplicits._ 
df.CustomJoin(df2) 

,以了解更多如何使用隐式的自定义方法添加到现有的类: Add Your Own Methods to the String Class

+0

你能解释更多你的解决方案吗?为什么我需要在这种情况下使用implicits。 – syl

+0

我添加了一个链接,以了解更多关于隐含在您的案例中使用的链接 – Mehrez

+0

您的答案完美无缺。你知道是否有一种方法来扩展这个使用SQL'Select * from t1 CustomJoin t2' – syl