Пожалуйста, обратитесь к моему примеру кода ниже:
sampleDf
-> мой примерный фрейм данных Scala, который я хочу отфильтровать по 2 столбцам startIPInt
и endIPInt
.
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)
В соответствии с этим, следующая строка кода выдает ошибку об «перегруженном методе 'filter'":
var row = sampleDf.filter($"startIPInt" <= ip).filter($"endIPInt" >= ip)
Может кто-нибудь помочь мне понять, что здесь происходит? И это правильный и самый быстрый способ фильтрации и получения содержимого фрейма данных, как указано выше.