В ссылке, которой вы поделились, функция from_json
использует следующий пример:
SELECT from_json('{"a":1, "b":0.8}', 'a INT, b DOUBLE');
Spark SQL поддерживает подавляющее большинство функций Hive, таких как определяющие ТИПЫ
Пример проблемы, с которой я столкнулся, потребовал, чтобы я проанализировал следующий объект JSON:
{'data': [
{
"id":02938,
"price": 2938.0,
"quantity": 1
},
{
"id":123,
"price": 123.5,
"quantity": 2
}
]}
Соответствующий SQL-запрос Spark будет выглядеть так:
SELECT
from_json('{"data":[{"id":123, "quantity":2, "price":39.5}]}'),
'data array<struct<id:INT, quantity:INT, price:DOUBLE>>').data) AS product_details;
вы можете связать это с функцией explode
, чтобы извлечь каждый элемент в его собственный столбец.
Я рекомендую post , чтобы узнать больше о создании типов для вашего запроса.
Обратитесь к этому SO сообщению для большего количества примеров
https://stackoverflow.com/a/55432107/1500443