Repository navigation
[BUG] Missing columnLineage facet when using SaveIntoDataSourceCommand and reading from Relation Nodes #3922
Copy link
Copy link
Open
Labels
kind:bugSomething isn't workingSomething isn't workingstate:needs-triageRequires triage to determine kind, area and priorityRequires triage to determine kind, area and priority
Description
OpenLineage integration/client
Spark integration
OpenLineage version
io.openlineage:openlineage-spark_2.12:1.34.0
Technology and package versions
- spark 3.5 (scala 2.12)
- oracle driver: com.oracle.database.jdbc:ojdbc11:23.3.0.23.09
- spark BQ Connector: com.google.cloud.spark:spark-3.5-bigquery:0.42.3
Environment configuration
No response
Deployment details
No response
Problem details
When I read from Oracle (JDBC) or from a CSV file and write to BigQuery, then the columnLineage facet is missing in the OL events.
What you think should happen instead
No response
How to reproduce
Oracle to BQ:
df = (
spark.read.format("jdbc")
.option("url", db_url)
.option("query", "SELECT employee_id FROM SYSTEM.employees")
.option("driver", "oracle.jdbc.OracleDriver")
.option("user", properties["user"])
.option("password", properties["password"])
.load()
)
df.write \
.format("bigquery") \
.option("project",google_project_id) \
.option("writeMethod", "DIRECT") \
.option("createDisposition","CREATE_IF_NEEDED") \
.option('parentProject', google_project_id) \
.option('temporaryGcsBucket', gcs_bucket) \
.option('materializationDataset', google_bq_dataset) \
.option('viewsEnabled', 'true') \
.option("table", f"{google_bq_dataset}.oracle_source1") \
.mode("overwrite") \
.save()
CSV to BigQuery
df = spark.read.csv(f"{directory}/joined_csv_data", header=True, mode="overwrite")
df.write \
.format("bigquery") \
.option("project",google_project_id) \
.option("writeMethod", "DIRECT") \
.option("createDisposition","CREATE_IF_NEEDED") \
.option('parentProject', google_project_id) \
.option('temporaryGcsBucket', gcs_bucket) \
.option('materializationDataset', google_bq_dataset) \
.option('viewsEnabled', 'true') \
.option("table", f"{google_bq_dataset}.csv_source") \
.mode("overwrite") \
.save()
Additional details
Logical Plans, respectively:
SaveIntoDataSourceCommand com.google.cloud.spark.bigquery.v2.Spark35BigQueryTableProvider@3b139c2e, Map(createdisposition -> CREATE_IF_NEEDED, project -> projectid materializationdataset -> dataset_name, viewsenabled -> true, writemethod -> DIRECT, temporarygcsbucket -> bucket, parentproject -> projectid, table -> dataset_name.oracle_source), Overwrite
+- Relation [EMPLOYEE_ID#0] JDBCRelation(SYSTEM.employees) [numPartitions=1]
SaveIntoDataSourceCommand com.google.cloud.spark.bigquery.v2.Spark35BigQueryTableProvider@7e6d068, Map(createdisposition -> CREATE_IF_NEEDED, project -> projectid, materializationdataset -> dataset_name, viewsenabled -> true, writemethod -> DIRECT, temporarygcsbucket -> bucket, parentproject -> projectid, table -> dataset_name.csv_source), Overwrite
+- Relation [EMPLOYEE_ID#17] csv
Do you plan to make this contribution yourself?
- I am interested in doing this work
Metadata
Metadata
Assignees
Labels
kind:bugSomething isn't workingSomething isn't workingstate:needs-triageRequires triage to determine kind, area and priorityRequires triage to determine kind, area and priority
Activity
ddebowczyk92 commentedon Jul 25, 2025
Hi @luke-hoffman1 , can you update your openlineage-spark version to a newer one? with
io.openlineage:openlineage-spark_2.12:1.34.0I couldn't recreate the issue