У меня есть следующая структура json:
{
"COLUMN1": {
"test00234": {
"text": "Hello"
}
}
},
"COLUMN2": {
"uname": {
"name": "test00234"
}
},
"status": "OKAY"
}
Я хочу получить доступ к параметру "text" в "test00234". test00234 является dynmami c и отличается в каждом файле json. Имя подобъекта доступно в COLUMN2> uname> name.
df_test= spark.sql("""
SELECT
/*COLUMN1[(SELECT COLUMN2['uname']['name'] FROM test)]['text'] AS text
COLUMN1[COLUMN2['uname']['name']]['text'] AS text
COLUMN1[CAST((SELECT * FROM test) AS String) ]['text'] AS text*/
OS['uname']['name'] AS number
FROM test
""")
df_test.show(n = 10, truncate=999)
К сожалению, я всегда получаю сообщение об ошибке: AnalysisException: u"Field name should be String Literal, but it's 'COLUMN2[uname][name];"
Я использую pyspark.
Elias