0
我有一个Spark SQL DF,其中我尝试调用一个UDF [我使用Spark SQL创建的udf
。在Spark SQL DataFrame中调用UDF方法中的其他方法/变量
val udfName = udf(somemethodName)
val newDF = df.withColumn("columnnew", udfName(col("anotherDFColumn"))
我试图使用存储为val
的somemethodName内的另一个DF,但DF即将为空。
只有当我使用newDF
中的where子句时才会发生这种情况。
我错过了什么吗?UDF方法中不可能使用其他变量/方法吗?
或者我必须做广播吗?目前我正在本地运行,而不是在群集中运行。
实际上'Dataset' /'Dataframe'可以被序列化。只是不能用于UDF封闭。 – 2016-11-23 17:37:03
@Tzach Zohar:数据框之间没有公共密钥,所以我无法加入,另一个数据框只是一个查找文件,有一些范围值,如0到60等。我如何使用UDF内的查找?我希望我可以读取UDF方法内的查找文件,但对于我需要加载整个文件的每一条记录... – Shankar
@LostInOverflow:我可以使用在UDF方法名称之外定义的列表吗?我正打算从文件中读取范围并创建一个列表,然后使用UDF方法中的列表..它会工作吗? – Shankar