У меня есть фрейм данных 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 их Но я не чувствую, что это эффективный способ, поскольку я жестко запрограммирован Несколько вещей и формат ввода могут измениться в будущем. Так что любой может предложить лучший подход или решение для этого