แชร์ผ่าน


ฟังก์ชันความหมาย

บทความนี้อธิบายถึงฟังก์ชันความหมายและวิธีการที่นักวิทยาศาสตร์ข้อมูลและวิศวกรข้อมูลค้นพบฟังก์ชันที่เกี่ยวข้องกับ 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 GeoDataFrame
  • parse_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, intfloat, และ datetime เพื่อกําหนดคอลัมน์อินพุตที่จําเป็น
  • คําอธิบายประกอบชนิดของพารามิเตอร์dfแรกแสดงว่าฟังก์ชันสามารถใช้ได้กับ FabricDataFrame แทนที่จะเป็น FabricSeries