Как указать расположение таблицы deltalake в потоковой передаче со структурированной искрой?

У меня есть входящие потоковые данные, которые я сохраняю в виде таблицы deltalake, используя следующий код:

cast_dataframe.writeStream.format("delta").outputMode("append")
.option("checkpointLocation",checkpointLocation)
.table(databasename+"."+tablename)

Здесь база данных - это имя базы данных, а имя таблицы - это имя таблицы, используемой для создания таблицы.

Когда я использую show create the table, чтобы показать схему таблицы, поле местоположения указывает на случайное местоположение примерно так abfs: //[email protected]/default/ db_name / table_name. Однако я хочу указать местоположение на свое указанное местоположение. Как я могу это сделать ?

Я пробовал описанный ниже подход, но он не сработал.

 cast_dataframe.writeStream.format("delta").outputMode("append")
 .option("checkpointLocation",checkpointLocation)
 .table(databasename+"."+tablename)
  .save(my_specified_location)

Но описанный выше подход не работает. Пожалуйста, помогите мне с этим.


person Pankaj Mishra    schedule 27.06.2019    source источник


Ответы (1)


.table и .save - это действия, и их просто нельзя использовать одновременно. На самом деле это не имеет ничего общего с источником данных дельты.


В официальной документации в таблице Delta Lake как раковина вы можете найти следующее:

.start("/delta/events") // as a path

что, кажется, в точности соответствует вашему «Я, однако, хочу указать местоположение на свое указанное местоположение».

person Jacek Laskowski    schedule 28.06.2019