Доступ к набору данных BigQuery из другого проекта GCP с использованием PySpark в DataprocPython

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Доступ к набору данных BigQuery из другого проекта GCP с использованием PySpark в Dataproc

Сообщение Anonymous »

Я работаю с BigQuery, Dataproc, рабочими процессами и облачным хранилищем в Google Cloud с использованием Python.
У меня есть два проекта GCP:
  • gcp-project1: содержит набор данных BigQuery gcp-project1.my_dataset.my_table

    gcp-project2: содержит мой myscript.py и мои файлы, хранящиеся в облачном хранилище
    < /li>
В myscript.py я пытаюсь прочитать SQL-запрос из файла, хранящегося в облачном хранилище (query1 =gs://path/bq.sql) и запросить данные из набора данных BigQuery в gcp-project1.
Согласно документации здесь , при чтении из BigQuery с помощью SQL-запроса мне нужно установить свойства viewsEnabled=true и materializationDataset=dataset.
Здесь какие подходы я пробовал:
Тест 1:

Код: Выделить всё

spark.conf.set("viewsEnabled", "true")
spark.conf.set("materializationDataset", "my_dataset")
Это не удается, поскольку он ищет набор данных в gcp-project2 (где выполняется myscript.py), но мой набор данных в gcp-project1. Ошибка: Не найдено: набор данных gcp-project2:my_dataset не найден в местоположении...
Тест 2:< /p>

Код: Выделить всё

spark.conf.set("viewsEnabled", "true")
spark.conf.set("materializationDataset", "gcp-project1.my_dataset")
Это не удается из-за ошибки: Идентификаторы наборов данных должны быть буквенно-цифровыми (плюс символы подчеркивания) и иметь длину не более 1024 символов.
Тест 3:

Код: Выделить всё

spark.conf.set("viewsEnabled", "true")
spark.conf.set("materializationDataset", "my_dataset")

try:
df = spark.read.format('bigquery') \
.option('project', 'gcp-project1') \ #Adding gcp-project1 contains dataset
.option('query', query1) \
.load()
df.printSchema()
df.show(10)
except Exception as e:
logger.error(f"Failed to read data from BigQuery: {e}")
sys.exit(1)
Это также завершается с той же ошибкой: Не найдено: набор данных gcp-project2:my_dataset не найден в местоположении...
Вопрос:
Как настроить сценарий PySpark для чтения данных из набора данных BigQuery в gcp-project1, пока запуск сценария в gcp-project2?
Будем признательны за любые предложения по взаимодействию с наборами данных в различных проектах GCP.
Заранее спасибо!


Подробнее здесь: https://stackoverflow.com/questions/789 ... on-datapro
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Python»