Как я обнаруживаю структуру базы данных PostgreSQL?

Это тот тип поста, где QUESTION будет стоить больше, чем ОТВЕТ, потому что приведенный выше код работает, но его нет нигде в документации или примерах Spark 2.x.

Выше показано, как я программно добавил функциональность в Spark 2.x посредством координат Maven. У меня было это работает, но потом оно перестало работать. Почему?

Когда я запустил вышеупомянутый код в jupyter notebook, ноутбук - за кулисами - уже выполнил этот идентичный фрагмент кода посредством моего сценария PYTHONSTARTUP. Этот сценарий PYTHONSTARTUP имеет тот же код, что и выше, , но опускает maven координаты (намеренно).

Итак, вот как возникает эта тонкая проблема:

spark_sesn = SparkSession.builder.config(conf = spark_conf).getOrCreate()

Поскольку Spark Session уже существовал, вышеприведенный оператор просто повторно использовал этот существующий сеанс (.getOrCreate ()) , в котором не было загруженных jar / библиотек (опять же, потому что мой скрипт PYTHONSTARTUP преднамеренно пропускает их). Вот почему это хорошая идея - помещать операторы печати в сценарии PYTHONSTARTUP (которые в остальном молчат).

В конце концов, я просто забыл сделать это: $ unset PYTHONSTARTUP перед запуском демона JupyterLab / Notebook.

Я надеюсь, что Вопрос поможет другим, потому что именно так программно добавляются функциональные возможности в Spark 2.x (в данном случае Kafka). Обратите внимание, что вам понадобится подключение к Интернету для единовременной загрузки указанных jar-файлов и рекурсивных зависимостей из Maven Central.

37
задан Acumenus 17 June 2015 в 20:51
поделиться

4 ответа

SELECT table_name 
    FROM information_schema.tables 
WHERE table_type = 'BASE TABLE' 
    AND table_schema NOT IN 
        ('pg_catalog', 'information_schema'); 

SELECT column_name 
    FROM information_schema.columns 
WHERE table_name = 'YourTablesName'; 

Эта страница имеет некоторую большую информацию о получении информации от information_schema: http://www.alberton.info/postgresql_meta_info.html

37
ответ дан CTT 27 November 2019 в 04:20
поделиться

используйте ANSI information_schema представления

select * from information_schema.tables

select * from information_schema.columns
5
ответ дан SQLMenace 27 November 2019 в 04:20
поделиться

Если у Вас есть доступ к psql, можно использовать \d и \d table . С точки зрения SQL, сначала эквивалентно

SELECT table_name FROM information_schema.tables WHERE table_schema = 'public'
115-секундный

SELECT column_name FROM information_schema.columns WHERE table_name ='table'
3
ответ дан vartec 27 November 2019 в 04:20
поделиться

не пишут это самостоятельно . Используйте phpPgAdmin - это будет намного легче, быстрее и менее подверженным ошибкам.

-5
ответ дан Tometzky 27 November 2019 в 04:20
поделиться
Другие вопросы по тегам:

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