Как конвертировать String в spark.sql.Column для запросов? - PullRequest
0 голосов
/ 06 марта 2019

Ситуация такова, что я хочу дать пользователю возможность отфильтровывать данные из кадра данных.Прогамматически я могу сделать это нормально, вот так.

val filter = col("SomeColA") > 0.1 && col("SomeColB") > 0.2

val queriedData = sqlContext.read.format("csv").
 option("header", "true").
 option("delimiter", "\t").option("inferSchema","true").
 load(filePath).where(filter)

Однако здесь я хочу, чтобы пользователь предоставил сам фильтр, используя, например, текстовое поле.Другими словами, я хочу иметь возможность превратить строку в ее эквивалентное spark.sql.Column значение.Например, я хочу, чтобы пользователь мог указать $"SomeCol" > 0.1 здесь в виде строки.Как я могу это сделать?

1 Ответ

2 голосов
/ 06 марта 2019

Можно просто использовать версию where, которая принимает выражение условия в виде строки, т.е. .where("SomeCol > 0.1"). Смотри https://spark.apache.org/docs/2.4.0/api/java/org/apache/spark/sql/Dataset.html#where-java.lang.String-

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...