Nano Hash - криптовалюты, майнинг, программирование

Как Hive on Spark может читать данные из jdbc?

Мы используем Hive в Spark, и мы хотим делать все в Hive, а также использовать Spark для вычислений. Это означает, что нам не нужно писать код карты / сокращения, а код, подобный sql.

И теперь у нас возникла проблема, мы хотим читать источник данных, такой как postgresql, и управлять им с помощью простого кода sql. И мы хотим, чтобы он работал в кластере.

У меня есть идея, я могу написать несколько udf-файлов Hive для подключения к jdbc и создания таблицы, подобной данным, но я обнаружил, что она не запускается в искровом задании, тогда это будет бесполезно.

Мы хотим набрать вот так в hive:

hive>select myfunc('jdbc:***://***','root','pw','some sql here');

Тогда я могу получить стол в улье и позволить ему присоединиться к другим. С другой стороны, независимо от того, какой улей движок используется, мы хотим читать другой источник данных в улье.

Не знаю, что мне теперь делать, может, кто-нибудь мне посоветует.


Есть способ сделать вот так:

hive> select * from hive_table where hive_table.id in
      (select myfunc('jdbcUrl','user','pw','sql'));

Я знаю, что куст используется для компиляции sql в задание MapReduce, я хочу знать, как сделать, чтобы мой sql / udf скомпилировался в задание MapReduce как spark.read().jdbc(...)

08.05.2018

  • Вы настроили Hive Metastore для подключения к JDBC? 08.05.2018
  • Данные, которые мне нужны, поступают не из Metastore, а из любого источника данных, то есть их адреса не совпадают. 08.05.2018

Ответы:


1

Я думаю, что проще загрузить данные из базы данных в фрейм данных, тогда вы можете сбросить их в куст при необходимости. Прочтите это: https://spark.apache.org/docs/2.2.0/sql-programming-guide.html#jdbc-to-other-databases.

Посмотрите имя свойства dbtable, вы можете загрузить часть таблицы, определенную в sql-запросе.

08.05.2018
  • Спасибо, что ответили мне, но мы не отправляем искровую работу, мы отправляем только sql в hive. Это значит, что у нас нет разрешения иметь дело с искрой, а только с ульем. 08.05.2018
  • Новые материалы

    Кластеризация: более глубокий взгляд
    Кластеризация — это метод обучения без учителя, в котором мы пытаемся найти группы в наборе данных на основе некоторых известных или неизвестных свойств, которые могут существовать. Независимо от..

    Как написать эффективное резюме
    Предложения по дизайну и макету, чтобы представить себя профессионально Вам не позвонили на собеседование после того, как вы несколько раз подали заявку на работу своей мечты? У вас может..

    Частный метод Python: улучшение инкапсуляции и безопасности
    Введение Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..

    Как я автоматизирую тестирование с помощью Jest
    Шутка для победы, когда дело касается автоматизации тестирования Одной очень важной частью разработки программного обеспечения является автоматизация тестирования, поскольку она создает..

    Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
    Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

    Понимание расстояния Вассерштейна: мощная метрика в машинном обучении
    В обширной области машинного обучения часто возникает необходимость сравнивать и измерять различия между распределениями вероятностей. Традиционные метрики расстояния, такие как евклидово..

    Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
    В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..