【发布时间】:2019-06-10 14:01:46
【问题描述】:
请参考下面我的示例代码:
sampleDf -> 我想在 2 列 startIPInt 和 endIPInt 上过滤的示例 Scala 数据帧。
var row = sampleDf.filter("startIPInt <=" + ip).filter("endIPInt >= " + ip)
我现在想查看这一行的内容。 以下代码只需要一秒钟的时间即可执行,但不会显示此行对象的内容:
println(row)
但是这段代码执行时间太长了:
row.show()
所以我的问题是我应该如何查看这个行对象的内容?或者我过滤数据框的方式有什么问题吗?
我最初的方法是使用这里提到的过滤器:https://spark.apache.org/docs/1.5.0/api/java/org/apache/spark/sql/DataFrame.html#filter(java.lang.String)
据此,以下代码行给我一个关于“重载方法'过滤器'”的错误:
var row = sampleDf.filter($"startIPInt" <= ip).filter($"endIPInt" >= ip)
谁能帮我理解这里发生了什么?这是过滤和获取上述数据帧内容的正确和最快的方法。
【问题讨论】:
标签: scala apache-spark dataframe apache-spark-sql