PySpark SQL доступ к динамическому c подобъекту - PullRequest
0 голосов
/ 25 марта 2020

У меня есть следующая структура 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

...