Ich versuche, eine verschachtelte JSON zu speichern, um Rotverschiebung mit den Funken Rotverschiebung SteckernFunken zur Rotverschiebung. Flatten Array String
Das Problem wird akzeptieren Rotverschiebung pflegt die Struktur des Datenrahmen, weil es eine Reihe
Also meine Frage hat, ist Gibt es eine Möglichkeit, das Array der Spalten foo und bar abzuflachen und ihre Werte in eine Zeichenkette umzuwandeln?
hier ist, was ich habe, so weit die Elemente als Array zu erhalten
val basketItems = df.select($"OrderContainer.BasketInfo.BasketId",
$"OrderContainer.BasketInfo.MenuId",
explode($"OrderContainer.BasketInfo.Items")).toDF("BasketId","MenuId","Items")
und hier ist die json ich verwende (zur besseren Lesbarkeit formatiert):
{
"OrderContainer":{
"BasketInfo":{
"BasketId":"kjOIxlJFc0WYdQXm2AXksg",
"MenuId":119949,
"Items":[
{
"ProductId":12310,
"UnitPrice":5.5,
"foo":[1,2,3],
"bar":["a","b","c"]
},
{
"ProductId":456323,
"UnitPrice":5.5,
"foo":[1,2,3],
"bar":["a","b","c"]
},
{
"ProductId":23432432,
"UnitPrice":5.5,
"foo":[1,2,3],
"bar":["a","b","c"]
}
]
}
}
}
Wollen Sie wirklich ein Feld in Ihren Redshift-Daten 'Items' haben, das ein Komma-begrenzter Textdurchbruch ist? Wenn dies der Fall ist, können Sie ein Array mit einem Begrenzer abflachen. Ansonsten könntest du eine separate Tabelle für Items machen – Kristian
Danke @Kristian das ist nur das Schema der Items, es wird überhaupt kein Durcheinander von Text sein. Danke für den Hinweis sowieso :) –