我正在尝试使用当前使用spark sql的scala使用spark对数据集进行一些转换,但希望将代码转换为本机scala代码。我想知道是使用过滤器还是映射,进行一些操作,例如匹配列中的值,并在转换为其他数据集后获得单个列。
SELECT * FROM TABLE WHERE COLUMN = ''
过去曾在spark sql中编写过类似的代码,有人可以告诉我另一种在数据集上使用map或filter编写相同内容的方法,甚至比比较起来快得多的方法。
答案 0 :(得分:0)
您可以从Apache Spark网站阅读文档。这是指向https://spark.apache.org/docs/2.3.1/api/scala/index.html#package的API文档的链接。 这是一个小例子-
response
答案 1 :(得分:0)
如果我理解您的问题正确,则需要将SQL查询重写为DataFrame API。您的查询从表TABLE
中读取所有列,并过滤COLUMN
为空的行。您可以通过以下方式使用DF:
spark.read.table("TABLE")
.where($"COLUMN".eqNullSafe(""))
.show(10)
性能将与您的SQL中的相同。使用dataFrame.explain(true)
方法来了解Spark会做什么。