select query для значения & gt; = jsonb column в postgresql

val result: DataFrame = sqlContext.read.json(path)
result.write.json("/yourPath")

Метод write находится в классе DataFrameWriter и должен быть доступен вам на объектах DataFrame. Просто убедитесь, что ваш rdd имеет тип DataFrame, а не устаревший тип SchemaRdd. Вы можете явно указать определение типа val data: DataFrame или передать в dataFrame с помощью toDF().

0
задан a_horse_with_no_name 13 July 2018 в 22:26
поделиться

1 ответ

Вам нужно нормализовать данные, развязав массив, тогда вы можете

select p.d
from mytable mt
  cross join lateral jsonb_array_elements(mt.tags -> 'predictions') as p(d)
where (p.d ->> 'confidence')::int >= 50;

. Для приведенных выше выборочных данных возвращается:

{"label": "Shopping", "confidence": 91}

Пример в Интернете : http://rextester.com/CBIAR76462

2
ответ дан a_horse_with_no_name 17 August 2018 в 12:07
поделиться
  • 1
    Спасибо, но не уверен, как отключить массив. должен ли я делать: select p.d from mytable mt cross join lateral jsonb_array_elements(unnest(mt.tags) -> 'predictions') as p(d) where (p.d ->> 'confidence')::int >= 50;. извините, новичок pgsql. – Santino 14 July 2018 в 11:25
  • 2
    jsonb_array_elements делает ненужный – a_horse_with_no_name 14 July 2018 в 11:44
  • 3
    hmm не получаю никаких результатов от выполнения запрошенного вами запроса. не уверен, что я делаю неправильно: / – Santino 14 July 2018 в 12:15
  • 4
    Работает для меня с вашими данными: rextester.com/CBIAR76462 – a_horse_with_no_name 14 July 2018 в 12:56
  • 5
    hmm ok, мне нужно проверить, что случилось. благодаря! – Santino 14 July 2018 в 14:46
Другие вопросы по тегам:

Похожие вопросы: