спарк
query: |
select order_id
, transaction_id
, created
from orders.v_orders
where date(created) between date('{date_from}') and date('{date_to}')
schema:
order_id: string
transaction_id: string
created: timestamp
Читаю так:
(spark.read
.format("jdbc")
.option("url", conn_uri)
.option("dbtable", f'({_render_jinja_template(template=query, settings=settings)}) as alias')
.schema(_prepare_schema(schema)) # преобразовано в строку вида 'colname1 type, colname2 type ...'
.load()
.createOrReplaceTempView(spark_alias)
)
Но натыкаюсь на ошибку:
pyspark.sql.utils.AnalysisException:
The user-specified schema doesn't match the actual schema:
user-specified:
created TIMESTAMP,order_id STRING,transaction_id STRING,
actual:
order_id STRING,transaction_id STRING,created TIMESTAMP.
If you're using
DataFrameReader.schema API or creating a table, please do not specify the schema.
Or if you're scanning an existed table, please drop it and re-create it.
Подскажите, куда покопать?
Спасибо
Попробуй убрать schema и обернуть запрос в (...) t
Обсуждают сегодня