ฟังก์ชันความหมาย
บทความนี้อธิบายถึงฟังก์ชันความหมายและวิธีการที่นักวิทยาศาสตร์ข้อมูลและวิศวกรข้อมูลค้นพบฟังก์ชันที่เกี่ยวข้องกับ FabricDataFrame หรือ FabricSeries ที่พวกเขากําลังทํางานอยู่ ฟังก์ชันความหมายเป็นส่วนหนึ่งของคุณลักษณะการเชื่อมโยงความหมาย Microsoft Fabric
สําหรับ Spark 3.4 และสูงกว่า แพคเกจหลักลิงก์ความหมายจะพร้อมใช้งานในรันไทม์ Fabric เริ่มต้น แต่แพคเกจฟังก์ชันการเชื่อมโยงความหมายที่มีตรรกะของฟังก์ชันความหมาย (เช่น is_holiday
) จําเป็นต้องติดตั้งด้วยตนเอง หากต้องการอัปเดตเป็นไลบรารีลิงก์ความหมาย Python (SemPy) เวอร์ชันล่าสุด ให้เรียกใช้คําสั่งต่อไปนี้:
%pip install -U semantic-link
FabricDataFrame แสดงฟังก์ชันเชิงไดนามิกเชิงไดนามิกโดยยึดตามตรรกะที่แต่ละฟังก์ชันกําหนดไว้
ตัวอย่างเช่น is_holiday
ฟังก์ชันจะปรากฏในคําแนะนําการกรอกข้อมูลอัตโนมัติเมื่อคุณทํางานบน FabricDataFrame ที่ประกอบด้วยทั้งคอลัมน์ datetime และคอลัมน์ประเทศ
ฟังก์ชันความหมายแต่ละฟังก์ชันใช้ข้อมูลเกี่ยวกับข้อมูล ชนิดข้อมูล และเมตาดาต้า (เช่น ประเภทข้อมูล Power BI) ใน FabricDataFrame หรือ FabricSeries เพื่อกําหนดความเกี่ยวข้องของข้อมูลเฉพาะที่คุณกําลังทํางานอยู่
ฟังก์ชันความหมายจะถูกค้นหาโดยอัตโนมัติเมื่อมีคําอธิบายประกอบด้วย @semantic_function
มัณฑนา
คุณสามารถนึกภาพของฟังก์ชันความหมายเป็นเหมือน วิธี ส่วนขยาย C# ที่นําไปใช้กับแนวคิด DataFrame
ฟังก์ชันความหมายการแนะนําการกรอกข้อมูลอัตโนมัติ
ฟังก์ชันความหมายพร้อมใช้งานในคําแนะนําการกรอกข้อมูลอัตโนมัติเมื่อคุณทํางานกับ FabricDataFrame หรือ FabricSeries ใช้ Ctrl+Space เพื่อทริกเกอร์การกรอกข้อมูลอัตโนมัติ
ตัวอย่างโค้ดต่อไปนี้ระบุเมตาดาต้าสําหรับ FabricDataFrame ด้วยตนเอง:
from sempy.fabric import FabricDataFrame
df = FabricDataFrame(
{"country": ["US", "AT"],
"lat": [40.7128, 47.8095],
"long": [-74.0060, 13.0550]},
column_metadata={"lat": {"data_category": "Latitude"}, "long": {"data_category": "Longitude"}},
)
# Convert to GeoPandas dataframe
df_geo = df.to_geopandas(lat_col="lat", long_col="long")
# Use the explore function to visualize the data
df_geo.explore()
อีกวิธีหนึ่งคือ ถ้าคุณอ่านจากแบบจําลองความหมายลงใน FabricDataFrame เมตาดาต้าจะถูกกรอกข้อมูลโดยอัตโนมัติ
from sempy.fabric import FabricDataFrame
# Read from semantic model
import sempy.fabric as fabric
df = fabric.read_table("my_dataset_name", "my_countries")
# Convert to GeoPandas dataframe
df_geo = df.to_geopandas(lat_col="lat", long_col="long")
# Use the explore function to visualize the data
df_geo.explore()
ฟังก์ชันความหมายภายในตัว
ไลบรารี SemPy Python มีชุดฟังก์ชันความหมายภายในที่พร้อมใช้งานทันที ฟังก์ชันที่มีอยู่ภายในเหล่านี้ประกอบด้วย:
is_holiday(...)
ใช้แพคเกจ Python วันหยุดเพื่อส่งกลับtrue
ถ้าวันที่เป็นวันหยุดในประเทศที่กําหนดto_geopandas(...)
แปลง FabricDataFrame เป็น GeoPandas GeoDataFrameparse_phonenumber(...)
ใช้หมายเลขโทรศัพท์ของแพ็คเกจ Python เพื่อแยกวิเคราะห์หมายเลขโทรศัพท์ลงในส่วนประกอบvalidators
ใช้แพ็คเกจ Validators Python เพื่อตรวจสอบชนิดข้อมูลทั่วไป เช่น หมายเลขอีเมลและบัตรเครดิต
ฟังก์ชันความหมายแบบกําหนดเอง
ฟังก์ชันความหมายถูกออกแบบมาสําหรับความสามารถในการเพิ่ม คุณสามารถกําหนดฟังก์ชันความหมายของคุณเองภายในสมุดบันทึกของคุณ หรือเป็นโมดูล Python ที่แยกต่างหาก
หากต้องการใช้ฟังก์ชันความหมายภายนอกสมุดบันทึก ให้ประกาศฟังก์ชันความหมายภายใน sempy.functions
โมดูล ตัวอย่างรหัสต่อไปนี้แสดงข้อกําหนดของฟังก์ชัน _is_capital
ความหมายที่ส่งกลับ true
ถ้าเมืองเป็นเมืองหลวงของประเทศ
from sempy.fabric import FabricDataFrame, FabricSeries
from sempy.fabric.matcher import CountryMatcher, CityMatcher
from sempy.functions import semantic_function, semantic_parameters
@semantic_function("is_capital")
@semantic_parameters(col_country=CountryMatcher, col_city=CityMatcher)
def _is_capital(df: FabricDataFrame, col_country: str, col_city: str) -> FabricSeries:
"""Returns true if the city is the capital of the country"""
capitals = {
"US": ["Washington"],
"AT": ["Vienna"],
# ...
}
return df[[col_country, col_city]] \
.apply(lambda row: row[1] in capitals[row[0]], axis=1)
ในตัวอย่างโค้ดก่อนหน้า:
- พารามิเตอร์
col_country
และcol_city
จะมีคําอธิบายประกอบด้วยCountryMatcher
และCityMatcher
ตามลําดับ คําอธิบายประกอบนี้ช่วยให้สามารถค้นหาฟังก์ชันความหมายได้โดยอัตโนมัติเมื่อทํางานกับ FabricDataFrame ที่มีเมตาดาต้าที่สอดคล้องกัน - การเรียกใช้ฟังก์ชันยังให้ชนิดข้อมูลมาตรฐานเช่น
str
,int
float
, และdatetime
เพื่อกําหนดคอลัมน์อินพุตที่จําเป็น - คําอธิบายประกอบชนิดของพารามิเตอร์
df
แรกแสดงว่าฟังก์ชันสามารถใช้ได้กับ FabricDataFrame แทนที่จะเป็น FabricSeries