This time we’re going bigger than ever. Fabric, Power BI, SQL, AI and more. We're covering it all. You won't want to miss it.
Learn moreDid you hear? There's a new SQL AI Developer certification (DP-800). Start preparing now and be one of the first to get certified. Register now
Unlock the Power of Reusing Your Library in the Lakehouse with This Step-by-Step Guide. Fabric provides you with different options to build your analytics solution. If you decide to use Lakehouse and code your solution with Python you may want to reuse some functions and reuse certain business logic across your code. Once your library is created and imported into Fabric you can even use the endorsement options to flag for other users to use your code. It is quite simple to create your own library with Python and even simpler to reuse it on Fabric. Let's check the step by step:
Creating library - Why?
Library in the Python context is a set of codes pre-compiled. That code, as it was mentioned before, could be something like a business logic that you reuse across the organization. When reusing this Library in a Fabric environment, we need to package the code and import.
1 . How?
Let's set our environment:
Fabric_Changing_the_game_Using_your_own_library_with_Microsoft_Fabric
Note: Commands should run at the terminal in the VS Code.
4. Define your interpreter as Fig 2- Interpreter shows:
Fabric_Changing_the_game_Using_your_own_library_with_Microsoft_Fabric
5. Create the folder where your code will be. Mine is Math_Custom, as we will create a function that will add 2 numbers for the sake of this example. You can create this folder using the following command line at the Visual Studio Code, as Fig 3 - Mkdir shows:
Fabric_Changing_the_game_Using_your_own_library_with_Microsoft_Fabric
6. Let's create a function to be reused: We will define a simple example for this library exercise. As mentioned, we will create a function called add_2. That function will add a number plus the other. Hence, to accomplish that: first, open a new file. (Menu file at the VS Code -> new File -> Python, as Fig 4-NewPy, shows.)
Fabric_Changing_the_game_Using_your_own_library_with_Microsoft_Fabric
Code:
def add_2(x,y):
return x+y
Run the file add_2.y by clicking on run. Fig 5-Run, shows :
Fabric_Changing_the_game_Using_your_own_library_with_Microsoft_Fabric
7. Next, let's create the init file of the project with the function/modules created, __Init__ defines the methods that will be called when you use your import statement to use this library. Inside of the __init__.py use the following code as this example shows:
Code:
from add_2 import add_2
8. We also need a Setup File to create this package and import it to the library later. Setup.py should exist outside of the math_custom folder. Therefore, create a new Python file and save it as setup.py outside the math_custom folder. This file should contain the package metadata, for example:
Code:
from setuptools import setup, find_packages
setup(
name='testpackage',
version='0.4',
author='Liliam Leme',
packages=['math_custom',],
)
9. The structure of your folder should be something like this at this point:
--testpackage ( main folder)
----- Setup.py ( setup file)
----------- math_custom (Source code folder)
--------------------add_2.py ( function code)
-------------------- __init__.py( init file)
10. Ok. Let's test our definitions of modules/functions and see how it goes. Create a new py file called Test.py and run the file:
Code:
import add_2
print (add_2.add_2(1,2))
Example at Fig 6 - Compile, show the execution of the module which you should be able to get by clicking in run at the Visual Studio Code:
Fabric_Changing_the_game_Using_your_own_library_with_Microsoft_Fabric
11. License\Readme files:
Readme.me will be a file that you can create in the source folder math_custom and it will contain information about your package as the example below:
# Example Package
This is a simple example package.
As for License, quoting from (Packaging Python Projects — Python Packaging User Guide) "It’s important for every package uploaded to the Python Package Index to include a license. This tells users who install your package the terms under which they can use your package."
The structure would be something like this at this point:
my_custom_code_library:
├── folder_name_of_my_module
│ ├── init.py
│ ├── function_module.py
│ ├── tests\tests.py
├── setup.py
└── README.md
13. The next step is to create the Distribution Package. ref: Glossary — Python Packaging User Guide. Run the following commands at the terminal in the VS Code as Fig 7-Pip shows:
-m pip install
Fabric_Changing_the_game_Using_your_own_library_with_Microsoft_Fabric
Install Wheel, Fig 8 and 9-Wheels show the following steps to create the package:
pip install wheel
Check installation
pip install check-wheel-contents
Fabric_Changing_the_game_Using_your_own_library_with_Microsoft_Fabric
Fabric_Changing_the_game_Using_your_own_library_with_Microsoft_Fabric
Note, In case you face this issue:
pip : The term 'pip' is not recognized as the name of a cmdlet, function, script file, or
operable program.
Add a Python path to the list of variables by doing the following:
(Ref: https://learn.microsoft.com/en-us/windows/win32/procthread/environment-variables)
Right-click on My Computer -> System from the Control Panel, select Advanced system settings and click Environment Variables.
Click on path and edit the location of the Python path. It should be the one you use when you install, generally speaking, at:
C:\Users\USERNAME\AppData\Local\Programs\Python\PythonvVERSION\Scripts
12. Create the distribution
Your package will be "A versioned archive file that contains Python packages, modules, and other resource files that are used to distribute a Release". Fig 10-Package shows.
The command line is:
setup.py bdist_wheel
Fabric_Changing_the_game_Using_your_own_library_with_Microsoft_Fabric
You can check if the Distribution was created successfully at VS Code Explorer, Fig 11-Dist. exemplifies:
Fabric_Changing_the_game_Using_your_own_library_with_Microsoft_Fabric
12. Import inside of Fabric.
The easiest step of all steps. The easiest step is to import into Fabric.
From Fabric, open the workspace settings by selecting the workspace first( my workspace name is NextSynapse12) -> Data Engineering -> Library management.
Fig 12-Fabric, show the step-by-step:
Ref: Workspaces - Microsoft Fabric | Microsoft Learn
Manage Apache Spark libraries - Microsoft Fabric | Microsoft Learn
From the docs:
Fabric_Changing_the_game_Using_your_own_library_with_Microsoft_Fabric
13. Executing
Once your library is imported into the Fabric environment you can do the following to reuse - Fig 13 - Execution, show the result:
Code:
##custom library.
from math_custom import add_2
print (add_2.add_2(1,2))
Fabric_Changing_the_game_Using_your_own_library_with_Microsoft_Fabric
Fig 13 - Execution
14- Simple as that if you want to flag this notebook code to be reused across your organization you can use the endorsement options for Fabric, available at the items settings. Endorsement overview - Microsoft Fabric | Microsoft Learn
Fabric_Changing_the_game_Using_your_own_library_with_Microsoft_Fabric
That is, it!
Liliam - UK
References:
https://packaging.python.org/en/latest/tutorials/packaging-projects/
Workspaces - Microsoft Fabric | Microsoft Learn
Manage Apache Spark libraries - Microsoft Fabric | Microsoft Learn
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.