Как l oop значение столбца данных pyspark для условных вычислений - PullRequest
0 голосов
/ 18 апреля 2020

У меня есть фрейм данных pyspark, я хочу выбрать данные столбца c и хочу использовать его, чтобы выбрать значения в зависимости от условия.

Пример фрейма данных:

-----+-----+-----+-----+---------------------------------------------------------------------------------------------------------------
|ID    |data                                                                                                                          |
+------+-----+-----+--------+----------------------------------------------------------------------------------------------------------
|1    |{"elements": [{{"sev": {"imp":"M","TIME":"20","min_lim":"10"}},{"sev": {"imp":"H","TIME":"10","min_lim":"5","max_lim:"10"}},{"sev": {"imp":"C","TIME":"5","min_lim":"1","max_lim:"4"}}}]}                                                                                    |
--------------------------------------------------------------------------------------------------------------------------------------|

schema:
df.printSchema
// root
//  |-- ID: string (nullable = false)
//  |-- data: string (nullable = true)

Я хочу чтобы получить значение данных, которое является строковым типом, и у меня есть переменная как limit = 3, поэтому мне нужно проверить max_limit и min_limit со значением предельной переменной, основываясь на совпадении, хочу выбрать значения imp и TIME

ex: if limit = 7, затем imp = H и Time = 10

Approach tried:

got data column into a variable

data_var = df.select('data').collect[0][0]

variable = ast(data_var)

преобразованы в кортежи и попытались добавить в список и l oop их Но я не чувствую, что это эффективный способ, поскольку я жестко запрограммирован Несколько вещей и формат ввода могут измениться в будущем. Так что любой может предложить лучший подход или решение для этого

...