hdinsight-migration
Skill1.4k starsChanged 4 days agoMITView on GitHub
Ports HDInsight Spark and Hive workloads to Fabric, converting HiveContext and SparkContext to SparkSession, WASB and ABFS paths to OneLake shortcuts, Hive DDL to Delta tables in a Lakehouse, and Oozie coordinators and actions to pipeline activities and triggers. Use when the source workload is HDInsight.
- Installs packages
1 other project uses a version of this, 1 of them edited.
Adopted by
Steady: 0 new projects took it in the last 4 weeks, none the 4 weeks before.thin data
Most recently taken up by
- kimtth/ms-fabric-skills-dev-starteredited, first seen May 18, 2026
Who's talking about microsoft/skills-for-fabric
- bmad-code-org/BMAD-METHOD“BMAD as a Data Engineer”GitHub · Jun 19, 2026 · 1 reactions
- sql-bi/docs“chore: bump skills-for-fabric marketplace footer to 0.3.21”GitHub · Nov 7, 2026
- sudosubin/agents.nix“claude-code-marketplaces.github.microsoft.skills-for-fabric: 0.3.20 → 0.3.21”GitHub · Nov 6, 2026
- sudosubin/agents.nix“agent-skills.github.microsoft.skills-for-fabric: 0.3.20 → 0.3.21”GitHub · Nov 6, 2026
- sudosubin/agents.nix“claude-code-plugins.github.microsoft.skills-for-fabric: 0.3.20 → 0.3.21”GitHub · Nov 5, 2026
The biggest 5 of 37 mentions linking to the repository that our crawl found. Each line is their own headline.
See all 37
Talked about on GitHub (37 times).
On GitHub · 37
- Jun 19, 2026BMAD as a Data Engineer — bmad-code-org/BMAD-METHOD1 reaction · 2 comments
- Nov 7, 2026chore: bump skills-for-fabric marketplace footer to 0.3.21 — sql-bi/docs0 reactions
- Nov 6, 2026claude-code-marketplaces.github.microsoft.skills-for-fabric: 0.3.20 → 0.3.21 — sudosubin/agents.nix0 reactions
- Nov 6, 2026agent-skills.github.microsoft.skills-for-fabric: 0.3.20 → 0.3.21 — sudosubin/agents.nix0 reactions
- Nov 5, 2026claude-code-plugins.github.microsoft.skills-for-fabric: 0.3.20 → 0.3.21 — sudosubin/agents.nix0 reactions
32 more on GitHub
- Nov 5, 2026copilot-plugins.github.microsoft.skills-for-fabric: 0.3.20 → 0.3.21 — sudosubin/agents.nix0 reactions
- Nov 5, 2026copilot-marketplaces.github.microsoft.skills-for-fabric: 0.3.20 → 0.3.21 — sudosubin/agents.nix0 reactions
- Oct 31, 2026AI guides: skills-for-fabric marketplace is now 0.3.20 — sql-bi/docs0 reactions
- Oct 29, 2026copilot-marketplaces.github.microsoft.skills-for-fabric: 0.3.19 → 0.3.20 — sudosubin/agents.nix0 reactions
- Oct 29, 2026claude-code-marketplaces.github.microsoft.skills-for-fabric: 0.3.19 → 0.3.20 — sudosubin/agents.nix0 reactions
- Oct 29, 2026agent-skills.github.microsoft.skills-for-fabric: 0.3.19 → 0.3.20 — sudosubin/agents.nix0 reactions
- Oct 29, 2026copilot-plugins.github.microsoft.skills-for-fabric: 0.3.19 → 0.3.20 — sudosubin/agents.nix0 reactions
- Oct 29, 2026FS-03: Databricks import report names the Fabric migration gotchas — KratosDataGod/KratosForge0 reactions
- Oct 29, 2026claude-code-plugins.github.microsoft.skills-for-fabric: 0.3.19 → 0.3.20 — sudosubin/agents.nix0 reactions
- Oct 28, 2026claude-code-plugins.github.microsoft.skills-for-fabric: init at 0.3.19 — sudosubin/agents.nix0 reactions
- Oct 28, 2026claude-code-marketplaces.github.microsoft.skills-for-fabric: init at 0.3.19 — sudosubin/agents.nix0 reactions
- Oct 21, 2026agent-skills.github.microsoft.skills-for-fabric: 0.3.18 → 0.3.19 — sudosubin/agents.nix0 reactions
- Oct 21, 2026copilot-plugins.github.microsoft.skills-for-fabric: 0.3.18 → 0.3.19 — sudosubin/agents.nix0 reactions
- Oct 21, 2026copilot-marketplaces.github.microsoft.skills-for-fabric: 0.3.18 → 0.3.19 — sudosubin/agents.nix0 reactions
- Oct 18, 2026build: bump @microsoft/powerbi-report-authoring-cli from 0.4.0 to 0.5.0 in /apps/australian-accounting-power-bi — ryanduguid/accounting-review-pipeline0 reactions
- Oct 17, 2026AI tools guides: the plugin's own MCP server definition has no --accepteula — sql-bi/docs0 reactions
- Oct 17, 2026AI tools guides: the powerbi-authoring plugin now has two skills, not five — sql-bi/docs0 reactions
- Oct 16, 2026[Candidate] microsoft/skills-for-fabric - large collection (51 SKILL.md files) — ProSkillsMD/proskills0 reactions · 1 comment
- Oct 15, 2026Bump @microsoft/powerbi-report-authoring-cli from 0.4.0 to 0.5.0 in /mcp — Antnioo/DataArcus0 reactions · 1 comment
- Oct 9, 2026Bump @microsoft/powerbi-report-authoring-cli from 0.1.4 to 0.5.0 — quantameridian/powerbi-kpi-semantic-model0 reactions
- Oct 4, 2026copilot-plugins.github.microsoft.skills-for-fabric: init at 0.3.18 — sudosubin/agents.nix0 reactions
- Oct 4, 2026copilot-marketplaces.github.microsoft.skills-for-fabric: init at 0.3.18 — sudosubin/agents.nix0 reactions
- Oct 3, 2026agent-skills.github.microsoft.skills-for-fabric: 0.3.17 → 0.3.18 — sudosubin/agents.nix0 reactions
- Sep 30, 2026agent-skills.github.microsoft.skills-for-fabric: init at 0.3.17 — sudosubin/agents.nix0 reactions
- Sep 25, 2026Bump @microsoft/powerbi-report-authoring-cli from 0.1.4 to 0.4.0 — quantameridian/powerbi-kpi-semantic-model0 reactions · 1 comment
- Aug 20, 2026fix: remove deprecated fabric-authoring, fabric-consumption, fabric-operations — github/copilot-plugins0 reactions
- Aug 17, 2026[BUG] Marketplace catalog outdated: `fabric-authoring`, `fabric-consumption` and `fabric-operations` — github/copilot-plugins0 reactions
- Aug 16, 2026Add Skills for Fabric to the catalog — gronnerup/fabricstack0 reactions
- Jul 2, 2026library: skills-for-fabric — gronnerup/fabricstack0 reactions
- Jul 2, 2026feat(plugin): ship a plugin marketplace so skills install in one command (GitHub Copilot CLI + Claude Code) — sdebruyn/fabric-dw-mcp-cli0 reactions · 1 comment
- Jun 29, 2026frabic skills — lagimik/PartnerCrucible0 reactions
- Apr 12, 2026[QUESTION] How to install the Skills for fabric-cli and keep them updated? — microsoft/fabric-cli0 reactions · 5 comments
Other versions1 project uses a version of this.
Word for word · 0
None found.
Edited · 1
- kimtth/ms-fabric-skills-dev-starter★ 286% same
Wrote their own version · 0
None found.
How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.
In this repository56 other files it gives its agents.
- AGENTS.mdAGENTS.md
- CLAUDE.mdCLAUDE.md
- activator-cliSkill
- azmon-mirroredcatalogs-operations-cliSkill
- databasehub-cliSkill
- databricks-migrationSkill
- dataflows-cliSkill
- deployment-pipelines-authoring-cliSkill
- e2e-fabric-cost-estimationSkill
- e2e-medallion-architectureSkill
- eventhouse-cliSkill
- eventschemaset-cliSkill
- eventstream-cliSkill
- fabriciqSkill
- fabric-policies-cliSkill
- git-integration-operations-cliSkill
- hdinsight-migrationSkill
- onelake-catalog-cliSkill
- ontology-cliSkill
- pipeline-migrationSkill
- project-osmosSkill
- search-consumption-cliSkill
- semantic-model-authoringSkill
- spark-cliSkill
- sqldb-cliSkill
- sqldw-cliSkill
- synapse-migrationSkill
- variable-library-cliSkill
- powerbi-report-cliSkill
- semantic-model-authoringSkill
- activator-cliSkill
- azmon-mirroredcatalogs-operations-cliSkill
- databasehub-cliSkill
- databricks-migrationSkill
- dataflows-cliSkill
- deployment-pipelines-authoring-cliSkill
- e2e-fabric-cost-estimationSkill
- e2e-medallion-architectureSkill
- eventhouse-cliSkill
- eventschemaset-cliSkill
- eventstream-cliSkill
- fabriciqSkill
- fabric-policies-cliSkill
- git-integration-operations-cliSkill
- onelake-catalog-cliSkill
- ontology-cliSkill
- pipeline-migrationSkill
- powerbi-report-cliSkill
- project-osmosSkill
- search-consumption-cliSkill
- semantic-model-authoringSkill
- spark-cliSkill
- sqldb-cliSkill
- sqldw-cliSkill
- synapse-migrationSkill
- variable-library-cliSkill
The file
We split this skill into the rules it gives an agent
1 rule. About 0 are common, 1 is distinctive, and 0 are very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈1
Distinctive · estimate
This author's own choices. Worth a look.
0
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Distinctive: line 22
Read these companion documents before executing migration tasks:
≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
Telemetry — MANDATORY. Every
api.fabric.microsoft.comcall must carryx-ms-fabric-skill: hdinsight-migration(az rest:--headers "x-ms-fabric-skill=hdinsight-migration"), including every LRO poll,fabric_lroand retry. Snippets omit it — add it anyway.
CRITICAL NOTES
- To find workspace details (including its ID) from a workspace name: list all workspaces, then use JMESPath filtering
- To find item details (including its ID) from workspace ID, item type, and item name: list all items of that type in that workspace, then use JMESPath filtering
- HDInsight has no
mssparkutilsordbutilsequivalent —notebookutilsis net-new capability being introducedHiveContextandSQLContextare legacy Spark 1.x/2.x APIs — Fabric uses Spark 3.xSparkSessionexclusivelywasb://paths are deprecated and require a Storage Account key or SAS — replace with OneLake shortcuts- Fabric cannot read or shortcut
hdfs://directly. Its Pipeline HDFS connector supports Anonymous authentication only; export or bridge Kerberos sources to supported storage first.
HDInsight → Microsoft Fabric Migration
Prerequisite Knowledge
Read these companion documents before executing migration tasks:
- COMMON-CORE.md — Fabric REST API patterns, authentication, token audiences, item discovery
- COMMON-CLI.md —
az rest,az login, token acquisition, Fabric REST via CLI - SPARK-AUTHORING-CORE.md — Notebook deployment, lakehouse creation, Spark job execution
For notebook and Lakehouse creation, see spark-cli. For Fabric Warehouse DDL/DML authoring, see sqldw-cli.
Table of Contents
| Topic | Reference |
| Migration Workload Map | § Migration Workload Map |
| SparkSession & Context API Changes | § SparkSession API Changes |
| WASB / ABFS → OneLake Path Migration | path-migration.md |
| Hive DDL → Delta Lake / Lakehouse Schemas | hive-to-delta.md |
| Oozie → Fabric Pipelines | § Oozie → Fabric Pipelines |
Introducing notebookutils | § Introducing notebookutils |
| Before/After Code Patterns | code-patterns.md |
| Spark Configuration Differences | § Spark Configuration Differences |
| Must / Prefer / Avoid | § Must / Prefer / Avoid |
| Authentication & Token Acquisition | COMMON-CORE.md § Authentication |
| Lakehouse Management | SPARK-AUTHORING-CORE.md § Lakehouse Management |
Migration Workload Map
| HDInsight Component | Fabric Target | Notes |
| Spark cluster (notebooks, scripts) | Fabric Spark (Lakehouse / Notebooks / SJD) | No persistent cluster — Starter Pool or Custom Pool provides on-demand Spark |
| Hive / HiveServer2 | Lakehouse SQL Endpoint + Lakehouse schemas | Delta Lake replaces Hive metastore; schemas provide namespace equivalent |
| HBase | Fabric Warehouse or Azure Cosmos DB (separate from Fabric) | HBase has no direct Fabric equivalent — assess workload access patterns |
| Oozie workflows | Fabric Data Pipelines | Map Oozie actions to Fabric activities; see § Oozie → Fabric Pipelines |
| YARN Resource Manager | Fabric Spark monitoring (Spark UI, Monitoring Hub) | No YARN — Fabric manages compute automatically |
| Ambari | Fabric Monitoring Hub + Admin Portal | Cluster health, capacity, and job monitoring |
| WASB / ABFS storage | OneLake Shortcuts → abfss://workspace@onelake.dfs.fabric.microsoft.com/ | See path-migration.md |
| Ranger policies | Fabric workspace roles + OneLake data access roles | Map Ranger row/column filters to Lakehouse row-level security |
| Livy REST server | Fabric Livy API | Compatible endpoint — see SPARK-AUTHORING-CORE.md |
SparkSession & Context API Changes
HDInsight Spark clusters often use legacy Spark 1.x / 2.x API styles. Replace all of these with the unified SparkSession:
| Legacy HDInsight Pattern | Fabric Spark 3.x Replacement |
from pyspark import SparkContext; sc = SparkContext() | Not needed — sc = spark.sparkContext (pre-instantiated) |
from pyspark.sql import HiveContext; hc = HiveContext(sc) | Not needed — spark session has Hive-compatible SQL support via Delta schemas |
from pyspark.sql import SQLContext; sqlc = SQLContext(sc) | Not needed — use spark.sql(...) directly |
SparkSession.builder.enableHiveSupport().getOrCreate() | Not needed in Fabric — spark is pre-built and available |
sc.textFile("wasb://container@account.blob.core.windows.net/path") | spark.read.text("abfss://workspace@onelake.dfs.fabric.microsoft.com/lh.Lakehouse/Files/path") |
sqlContext.sql("CREATE TABLE ... STORED AS ORC") | See hive-to-delta.md for Delta DDL equivalent |
In Fabric notebooks,
spark(SparkSession) andsc(SparkContext) are pre-instantiated — do not callSparkContext()orSparkSession.builder...getOrCreate()at the top of migrated notebooks.
Oozie → Fabric Pipelines
Map Oozie workflow actions to Fabric Data Pipeline activities:
| Oozie Action Type | Fabric Pipeline Activity | Notes |
<spark> action | Notebook activity or Spark Job Definition activity | Pass parameters via notebook cell parameters or SJD arguments |
<hive> action | Script activity (SQL) against Lakehouse SQL Endpoint | Convert HiveQL to Spark SQL or Delta SQL |
<shell> action | Azure Function activity or Web activity | Shell scripts must be refactored; no direct shell execution in Fabric Pipelines |
<java> action | Azure Batch activity (external) or refactor to PySpark | Java MapReduce jobs must be rewritten |
<sqoop> action | Copy Data activity (Fabric Data Factory connector) | Sqoop import/export maps to Fabric Copy Data with JDBC source/sink |
<coordinator> (time-based schedule) | Pipeline schedule trigger | Set recurrence in pipeline trigger; supports cron-like expressions |
<coordinator> (data-triggered) | Storage Event trigger | Trigger on OneLake file arrival |
Delegate to
spark-clifor notebook and SJD creation after mapping pipeline activities.
Introducing notebookutils
HDInsight Spark had no built-in utility framework equivalent to mssparkutils or dbutils. When migrating to Fabric, introduce notebookutils for common operations:
| Operation | Old HDInsight Approach | notebookutils Equivalent |
| List files | dbutils (N/A) / HDFS CLI | notebookutils.fs.ls("abfss://...") |
| Copy file | HDFS API / shutil | notebookutils.fs.cp(src, dest) |
| Read secret | Azure Key Vault REST call | notebookutils.credentials.getSecret(keyVaultUrl, secretName) |
| Get notebook context | Not available | notebookutils.runtime.context — returns workspace ID, notebook ID, etc. |
| Run child notebook | Not available | notebookutils.notebook.run("notebook_name", timeout, {"param": "value"}) |
| Exit notebook with value | sys.exit() | notebookutils.notebook.exit("value") |
| Mount storage | WASB config in spark-defaults.conf | OneLake Shortcut (no runtime mount needed) |
Spark Configuration Differences
| HDInsight Concept | Fabric Spark Equivalent | Migration Action |
spark-defaults.conf (cluster-wide) | Fabric Spark Workspace Settings + Environment item | Move config properties to Environment or use %%configure in notebooks |
%%configure magic | %%configure magic — identical | No change needed |
| YARN queue / resource allocation | Fabric Spark pool node size and autoscale settings | Map queue SLAs to Custom Pool configuration |
| Ambari service configs (HDFS, YARN tuning) | Not applicable — Fabric manages infrastructure | Remove; focus on application-level Spark configs |
| HDI Spark version (e.g., Spark 2.4) | Fabric Runtime 1.3 = Spark 3.5 (latest) | Test for deprecated API removals (e.g., HiveContext, RDD-style ML) |
Conda environment / bootstrap.sh | Fabric Environment item with custom libraries | Recreate conda/pip dependencies in a Fabric Environment |
hive-site.xml (metastore connection) | Not needed — Delta Lake IS the metastore in Fabric | Remove metastore config; use Lakehouse schemas for namespace organization |
Must / Prefer / Avoid
MUST DO
- Replace all
wasb:///wasbs://paths with OneLakeabfss://paths or OneLake Shortcuts —wasb://requires storage account keys which are not the Fabric-preferred auth model - Replace
HiveContext,SQLContext, and standaloneSparkContext()— use the pre-instantiatedsparksession in Fabric notebooks - Migrate Hive DDL (
STORED AS ORC,LOCATION,TBLPROPERTIES) to Delta Lake DDL — see hive-to-delta.md - Introduce
notebookutilsfor file system operations, secret retrieval, and child notebook orchestration where HDInsight used custom scripts or direct API calls - Replace Oozie XML workflows with Fabric Data Pipelines — see § Oozie → Fabric Pipelines
- Align library management to Fabric Environments — remove
bootstrap.sh, conda envs, and runtime%pip installpatterns for production workloads - Treat
hdfs://as source-cluster-only — export or ingest into ADLS Gen2 or OneLake; do not claim that a gateway adds Kerberos support to Fabric's Anonymous-only HDFS connector
PREFER
- OneLake Shortcuts over copying data — mount existing ADLS Gen2 containers as shortcuts to avoid re-ingestion during migration
- Delta Lake for all tables migrated from Hive ORC/Parquet — ACID guarantees, time travel, and schema enforcement improve data quality
- Fabric Starter Pool for initial migration validation — no pool configuration overhead, fast session startup
- Lakehouse schemas (database namespaces) for organizing migrated Hive databases — one schema per Hive database within a single Lakehouse
- Medallion architecture for restructuring migrated data layers during migration — align Bronze/Silver/Gold with raw Hive → validated Delta → serving Gold patterns
AVOID
- Do not use
SparkContext()orHiveContext()constructors in Fabric notebooks — they conflict with the pre-instantiatedsparksession and will raise errors - Do not use
hive-site.xmlor external Hive metastore configuration — Fabric's Delta Lake-backed Lakehouse IS the metastore - Do not assume YARN queue mappings translate to Fabric pools — re-design resource allocation based on Fabric Spark pool SLAs
- Do not attempt to run Oozie shell actions or Java MapReduce jobs directly in Fabric — these must be refactored (see § Oozie → Fabric Pipelines)
- Do not use
%shmagic for file system operations in production notebooks — usenotebookutils.fs.*for portability and OneLake token-based auth
Examples
See code-patterns.md for full before/after examples. Key quick references:
Legacy context → Fabric pre-instantiated session
# HDInsight (remove entirely)
from pyspark.sql import HiveContext
hc = HiveContext(sc)
# Fabric — use pre-instantiated spark directly
df = spark.sql("SELECT * FROM sales.fact_orders")WASB path → OneLake path (after shortcut creation)
# HDInsight
df = spark.read.parquet("wasb://raw@myaccount.blob.core.windows.net/orders/")
# Fabric
df = spark.read.parquet("Files/raw/orders/")Hive DDL → Delta DDL
-- HDInsight
CREATE TABLE sales_db.fact_orders (...) STORED AS ORC LOCATION 'wasb://...';
-- Fabric
CREATE SCHEMA IF NOT EXISTS sales_db;
CREATE TABLE sales_db.fact_orders (...) USING DELTA;Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

