一键导入
oleander-spark-lineage
oleander-specific Spark guidance for connected OpenLineage, collect() pitfalls, and environment variable usage.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
oleander-specific Spark guidance for connected OpenLineage, collect() pitfalls, and environment variable usage.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
基于 SOC 职业分类
| name | oleander-spark-lineage |
| description | oleander-specific Spark guidance for connected OpenLineage, collect() pitfalls, and environment variable usage. |
Use this skill when Spark lineage in oleander looks disconnected or when rewriting Spark jobs to preserve connected lineage.
Key behavior from oleander Spark/OpenLineage integrations:
collect() is a Spark action that materializes data into driver memory.collect(), execution is regular Python in-memory logic, not distributed Spark DataFrame execution.Prefer this shape for connected lineage:
df = spark.table(...)select, withColumn, join, aggregate)df.write(...)If collect() is required, keep it for small side-effects or reporting, not as the core bridge between read and write.
When fixing lineage gaps:
collect, toPandas, driver loops).df.write...), not Python-memory writes.Use env vars for runtime configuration, not transformation logic.
os.getenv("VAR", "default")Example pattern:
import os
job_name = os.getenv("NAME", "default-service")
output_catalog = os.getenv("OUTPUT_CATALOG", "oleander.sf")
In this repo, examples/print_name.py uses:
NAME with fallback default-serviceHow to submit, monitor, and configure Spark jobs on oleander using the CLI & TypeScript SDK.
Patterns for reading and writing oleander Iceberg catalog tables in Spark jobs, including naming conventions, write modes, and catalog hierarchy.