Тип карты DeltaTablePython

Программы на Python
Ответить
Anonymous
 Тип карты DeltaTable

Сообщение Anonymous »

Используя Spark, я могу создать дельта-таблицу с типом столбца карты: MAP

Как создать дельта-таблицу с типом карты без Spark?

Я попробовал несколько подходов, и ни один из них не работает.

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

import pyarrow as pa
from deltalake import write_deltalake

# Create a sample Arrow Table with a map type
data = {
"id": pa.array([1, 2, 3]),
"name": pa.array(["Alice", "Bob", "Charlie"]),
"attributes": pa.array([
pa.array([("age", 30)], type=pa.map_(pa.string(), pa.int32())),
pa.array([("age", 25)], type=pa.map_(pa.string(), pa.int32())),
pa.array([("age", 35)], type=pa.map_(pa.string(), pa.int32())),
])
}

# Create an Arrow Table
table = pa.Table.from_pydict(data)

# Define the path where the Delta table will be stored
delta_table_path = "./tmp/delta_map"

# Write the Arrow Table to a Delta table
write_deltalake(delta_table_path, data=table, mode="overwrite")
pyarrow выдает: pyarrow.lib.ArrowTypeError: не удалось преобразовать 'a' с типом str: ожидался кортеж пары (ключ, значение)

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

from deltalake import Schema, Field, DeltaTable, WriterProperties, write_deltalake
from deltalake.schema import PrimitiveType, MapType

# Define the schema for the Delta table
schema = Schema([
Field("id",PrimitiveType("string")),
Field("data", MapType("integer", "string", value_contains_null=False))
])

# Create a list of data to write to the Delta table
data = [
{"id": "1", "data": {"key1": "value1", "key2": "value2"}},
{"id": "2", "data": {"key3": "value3", "key4": "value4"}}
]

# Create a Delta table
delta_table = write_deltalake(table_or_uri="./tmp/delta_map", data=data,
schema=schema,mode="append",
writer_properties=WriterProperties(compression="ZSTD")
)

# Write the data to the Delta table
delta_table.write_data(data)

deltalake выдает: NotImplementedError: ArrowSchemaConversionMode.passthrough не реализован для работы с DeltaSchema, пропуска передачи схемы или передачи схемы стрелки.
Thx

Подробнее здесь: https://stackoverflow.com/questions/793 ... e-map-type
Ответить

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

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

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

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

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