พัฒนา ดําเนินการ และจัดการสมุดบันทึก Microsoft Fabric
สมุดบันทึก Microsoft Fabric เป็นรายการรหัสหลักสําหรับการพัฒนางาน Apache Spark และการทดลองการเรียนรู้ของเครื่อง ซึ่งเป็นพื้นผิวแบบโต้ตอบบนเว็บที่ใช้โดยนักวิทยาศาสตร์ข้อมูลและวิศวกรข้อมูลในการเขียนโค้ดซึ่งได้รับประโยชน์จากการแสดงภาพและข้อความ Markdown ที่หลากหลาย บทความนี้อธิบายวิธีการพัฒนาสมุดบันทึกด้วยการดําเนินการเซลล์ของโค้ดและเรียกใช้สมุดบันทึกเหล่านั้น
พัฒนาสมุดบันทึก
สมุดบันทึกประกอบด้วยเซลล์ ซึ่งเป็นแต่ละบล็อกของโค้ดหรือข้อความที่สามารถเรียกใช้ได้อย่างอิสระหรือเป็นกลุ่ม
เรามีการดําเนินงานที่สมบูรณ์เพื่อพัฒนาโน้ตบุ๊ค:
- เพิ่มเซลล์
- ตั้งค่าภาษาหลัก
- ใช้หลายภาษา
- IntelliSense สไตล์ IDE
- ส่วนย่อยของโค้ด
- ลากแล้วปล่อยเพื่อแทรกส่วนย่อย
- ลากแล้วปล่อยเพื่อแทรกรูปภาพ
- จัดรูปแบบเซลล์ข้อความด้วยปุ่มแถบเครื่องมือ
- การเลิกทําหรือทําซ้ําการดําเนินการเซลล์
- ย้ายเซลล์
- ลบเซลล์
- ยุบอินพุตเซลล์
- ยุบผลลัพธ์ของเซลล์
- การรักษาความปลอดภัยเอาต์พุตของเซลล์
- ล็อกหรือหยุดเซลล์
- เนื้อหาของสมุดบันทึก
- Markdown Folding
- ค้นหาและแทนที่
เพิ่มเซลล์
มีหลายวิธีในการเพิ่มเซลล์ใหม่ลงในสมุดบันทึกของคุณ
วางเมาส์เหนือช่องว่างระหว่างเซลล์สองเซลล์ และเลือก โค้ด หรือ Markdown
ใช้ ปุ่มลัดในโหมดคําสั่ง กด A เพื่อแทรกเซลล์เหนือเซลล์ปัจจุบัน กด B เพื่อแทรกเซลล์ด้านล่างเซลล์ปัจจุบัน
ตั้งค่าภาษาหลัก
ในขณะนี้ สมุดบันทึกสําหรับผ้ารองรับภาษา Apache Spark สี่ภาษา:
- PySpark (Python)
- Spark (สเกลา)
- Spark SQL
- Sparkr
คุณสามารถตั้งค่าภาษาหลักสําหรับเซลล์ใหม่ที่เพิ่มจากรายการดรอปดาวน์ในแถบคําสั่งด้านบน
ใช้หลายภาษา
คุณสามารถใช้หลายภาษาในสมุดบันทึกได้โดยการระบุภาษาคําสั่งเวทมนตร์ที่จุดเริ่มต้นของเซลล์ คุณยังสามารถสลับภาษาของเซลล์จากตัวเลือกภาษาได้ ตารางต่อไปนี้แสดงรายการคําสั่งมายากลสําหรับการสลับภาษาของเซลล์
คําสั่งเวทมนตร์ | ภาษา | คำอธิบาย: |
---|---|---|
%pyspark | Python | ดําเนินการคิวรี Python กับบริบท Apache Spark |
%%spark | Scala | ดําเนินการคิวรี Scala กับบริบท Apache Spark |
%%sql | SparkSQL | ดําเนินการคิวรี SparkSQL กับบริบท Apache Spark |
%%html | Html | ใช้คิวรี HTML กับบริบท Apache Spark |
%%sparkr | R | ใช้คิวรี R กับบริบท Apache Spark |
IntelliSense สไตล์ IDE
โน้ตบุ๊คผ้าถูกรวมเข้ากับตัวแก้ไข Monaco เพื่อนํา IntelliSense สไตล์ IDE มาไว้ในตัวแก้ไขเซลล์ การเน้นไวยากรณ์ เครื่องหมายข้อผิดพลาด และการกรอกข้อมูลโค้ดอัตโนมัติช่วยให้คุณสามารถเขียนโค้ดและระบุปัญหาได้อย่างรวดเร็ว
คุณลักษณะ IntelliSense มีระดับความสมบูรณ์แตกต่างกันสําหรับภาษาที่แตกต่างกัน ตารางต่อไปนี้แสดงสิ่งที่ Fabric สนับสนุน:
ภาษา | การเน้นไวยากรณ์ | ตัวทําเครื่องหมายข้อผิดพลาดของไวยากรณ์ | การเสร็จสิ้นรหัสไวยากรณ์ | การเติมรหัสตัวแปรให้สมบูรณ์ | การเติมรหัสฟังก์ชันของระบบ | การเติมรหัสฟังก์ชันของผู้ใช้ | การเยื้องอัจฉริยะ | การพับรหัส |
---|---|---|---|---|---|---|---|---|
PySpark (Python) | ใช่ | ใช่ | ใช่ | ใช่ | ใช่ | ใช่ | ใช่ | ใช่ |
Spark (สเกลา) | ใช่ | ใช่ | ใช่ | ใช่ | ใช่ | ใช่ | ใช่ | ใช่ |
SparkSQL | ใช่ | ใช่ | ใช่ | ใช่ | ใช่ | ไม่ | ใช่ | ใช่ |
Sparkr | ใช่ | ใช่ | ใช่ | ใช่ | ใช่ | ใช่ | ใช่ | ใช่ |
หมายเหตุ
คุณต้องมีเซสชัน Apache Spark ที่ใช้งานอยู่เพื่อใช้การเติมรหัส IntelliSense ให้สมบูรณ์
ส่วนย่อยของโค้ด
สมุดบันทึกสําหรับผ้ามีส่วนย่อยของโค้ดที่ช่วยให้คุณเขียนรูปแบบโค้ดที่ใช้กันทั่วไปได้อย่างง่ายดาย เช่น:
- การอ่านข้อมูลเป็น Apache Spark DataFrame
- การวาดแผนภูมิด้วย Matplotlib
ส่วนย่อยปรากฏใน ปุ่มลัดของสไตล์ IDE IntelliSense ผสมกับคําแนะนําอื่น ๆ เนื้อหาส่วนย่อยของโค้ดจะสอดคล้องกับภาษาเซลล์ของโค้ด คุณสามารถดูส่วนย่อยที่พร้อมใช้งานได้โดยการพิมพ์ส่วนย่อย คุณยังสามารถพิมพ์คําสําคัญใด ๆ เพื่อดูรายการของส่วนย่อยที่เกี่ยวข้อง ตัวอย่างเช่น ถ้าคุณพิมพ์ อ่าน คุณจะเห็นรายการของส่วนย่อยในการอ่านข้อมูลจากแหล่งข้อมูลต่าง ๆ
ลากแล้วปล่อยเพื่อแทรกส่วนย่อย
ใช้การลากและวางเพื่ออ่านข้อมูลจาก Lakehouse explorer อย่างสะดวก หลายชนิดไฟล์ได้รับการสนับสนุนที่นี่ คุณสามารถดําเนินการกับไฟล์ข้อความ ตาราง รูปภาพ และอื่น ๆ คุณสามารถวางลงในเซลล์ที่มีอยู่หรือไปยังเซลล์ใหม่ได้ สมุดบันทึกจะสร้างส่วนย่อยของโค้ดตามการแสดงตัวอย่างข้อมูล
ลากแล้วปล่อยเพื่อแทรกรูปภาพ
ใช้การลากและวางเพื่อแทรกรูปภาพจากเบราว์เซอร์หรือคอมพิวเตอร์เฉพาะที่ไปยังเซลล์ Markdown ได้อย่างง่ายดาย
จัดรูปแบบเซลล์ข้อความด้วยปุ่มแถบเครื่องมือ
เพื่อดําเนินการ Markdown ทั่วไปให้เสร็จสมบูรณ์ ให้ใช้ปุ่มรูปแบบในแถบเครื่องมือเซลล์ข้อความ
เลิกทําหรือทําซ้ําการดําเนินการเซลล์
เลือก เลิกทํา หรือ ทําซ้ํา หรือกด Z หรือ Shift + Z เพื่อเพิกถอนการดําเนินการเซลล์ล่าสุด คุณสามารถเลิกทําหรือทําซ้ําได้สูงสุด 10 รายการของการดําเนินการเซลล์ในอดีตล่าสุด
การดําเนินการเซลล์ที่ยกเลิกการสนับสนุน:
- แทรกหรือลบเซลล์ คุณสามารถเพิกถอนการดําเนินการที่ถูกลบได้โดยการเลือก เลิกทํา (เนื้อหาข้อความจะถูกเก็บไว้พร้อมกับเซลล์)
- จัดลําดับเซลล์ใหม่
- สลับพารามิเตอร์
- แปลงระหว่างเซลล์โค้ดและเซลล์ Markdown
หมายเหตุ
การดําเนินการข้อความในเซลล์และการดําเนินการแสดงข้อคิดเห็นบนเซลล์ไม่สามารถเลิกทําได้ คุณสามารถเลิกทําหรือทําซ้ําได้สูงสุด 10 รายการของการดําเนินการเซลล์ในอดีตล่าสุด
ย้ายเซลล์
คุณสามารถลากจากส่วนว่างของเซลล์และวางลงในตําแหน่งที่ต้องการได้
คุณยังสามารถย้ายเซลล์ที่เลือกโดยใช้ ย้ายขึ้น และ ย้ายลง บนริบบอนได้อีกด้วย
ลบเซลล์
เมื่อต้องการลบเซลล์ ให้เลือกปุ่มลบทางด้านขวาของเซลล์
คุณยังสามารถใช้ แป้นพิมพ์ลัดในโหมดคําสั่งได้อีกด้วย กด Shift+D เพื่อลบเซลล์ปัจจุบัน
ยุบอินพุตเซลล์
เลือก คําสั่ง เพิ่มเติม จุดไข่ปลา (...) บนแถบเครื่องมือเซลล์ และ ซ่อนอินพุต เพื่อยุบการป้อนข้อมูลของเซลล์ปัจจุบัน เมื่อต้องการขยายอีกครั้ง ให้เลือก แสดงอินพุต เมื่อเซลล์ถูกยุบ
ยุบผลลัพธ์ของเซลล์
เลือก คําสั่ง เพิ่มเติม จุดไข่ปลา (...) บนแถบเครื่องมือเซลล์ และ ซ่อนผลลัพธ์ เพื่อยุบผลลัพธ์ของเซลล์ปัจจุบัน เมื่อต้องการขยายอีกครั้ง ให้เลือก แสดงผลลัพธ์ เมื่อผลลัพธ์ของเซลล์ถูกยุบ
การรักษาความปลอดภัยเอาต์พุตของเซลล์
การใช้ บทบาทการเข้าถึงข้อมูล OneLake (ตัวอย่าง) ผู้ใช้สามารถกําหนดค่าการเข้าถึงโฟลเดอร์เฉพาะใน lakehouse ในระหว่างการคิวรีของสมุดบันทึกได้ ผู้ใช้ที่ไม่มีการเข้าถึงโฟลเดอร์หรือตารางจะเห็นข้อผิดพลาดที่ไม่ได้รับอนุญาตระหว่างการดําเนินการคิวรี
สำคัญ
ความปลอดภัยใช้ในระหว่างการดําเนินการคิวรีและเซลล์สมุดบันทึกใด ๆ ที่มีผลลัพธ์คิวรีเท่านั้นที่ผู้ใช้ไม่ได้รับอนุญาตให้เรียกใช้คิวรีกับข้อมูลโดยตรง
ล็อกหรือหยุดเซลล์
การล็อกและหยุดการทํางานของเซลล์ช่วยให้คุณสามารถทําให้เซลล์เป็นแบบอ่านอย่างเดียวหรือหยุดเซลล์โค้ดจากการเรียกใช้ในแต่ละเซลล์ได้
การผสานและแยกเซลล์
คุณสามารถใช้ ผสานกับเซลล์ ก่อนหน้าหรือ ผสานกับเซลล์ ถัดไปเพื่อผสานเซลล์ที่เกี่ยวข้องได้อย่างสะดวก
การเลือก แยกเซลล์ ช่วยให้คุณสามารถแยกคําสั่งที่ไม่เกี่ยวข้องไปยังหลายเซลล์ได้ การดําเนินงานจะแบ่งรหัสตามตําแหน่งบรรทัดของเคอร์เซอร์ของคุณ
เนื้อหาของสมุดบันทึก
การเลือกเค้าร่างหรือสารบัญจะแสดงส่วนหัว Markdown แรกของเซลล์ Markdown ในหน้าต่างแถบด้านข้างสําหรับการนําทางด่วน แถบด้านข้างเค้าร่างสามารถปรับขนาดและยุบให้พอดีกับหน้าจอในวิธีที่ดีที่สุดที่เป็นไปได้ เลือกปุ่มเนื้อหาบนแถบคําสั่งสมุดบันทึกเพื่อเปิดหรือซ่อนแถบด้านข้าง
Markdown Folding
ตัวเลือก Markdown Folding ช่วยให้คุณสามารถซ่อนเซลล์ภายใต้เซลล์ Markdown ที่มีหัวเรื่อง เซลล์ Markdown และเซลล์ที่ซ่อนอยู่จะถือว่าเหมือนกับชุดของเซลล์ที่เลือกที่อยู่ติดกันเมื่อดําเนินการเซลล์
ค้นหาและแทนที่
ตัวเลือกการค้นหาและแทนที่สามารถช่วยให้คุณจับคู่และค้นหาคําสําคัญหรือนิพจน์ภายในเนื้อหาของสมุดบันทึกของคุณได้ คุณยังสามารถแทนที่สตริงเป้าหมายด้วยสตริงใหม่ได้อย่างง่ายดาย
เรียกใช้สมุดบันทึก
คุณสามารถเรียกใช้เซลล์รหัสในสมุดบันทึกของคุณทีละเซลล์หรือทั้งหมดในครั้งเดียวได้ สถานะและความคืบหน้าของแต่ละเซลล์จะแสดงในสมุดบันทึก
เรียกใช้เซลล์
การเรียกใช้โค้ดในเซลล์มีหลายวิธี
วางเมาส์บนเซลล์ที่คุณต้องการเรียกใช้ และเลือกปุ่ม เรียกใช้เซลล์ หรือกด Ctrl+ Enter
ใช้ ปุ่มลัดในโหมดคําสั่ง กด Shift+Enter เพื่อเรียกใช้เซลล์ปัจจุบันและเลือกเซลล์ถัดไป กด Alt+Enter เพื่อเรียกใช้เซลล์ปัจจุบันและแทรกเซลล์ใหม่
เรียกใช้เซลล์ทั้งหมด
เลือก ปุ่ม เรียกใช้ทั้งหมด เพื่อเรียกใช้เซลล์ทั้งหมดในสมุดบันทึกปัจจุบันตามลําดับ
เรียกใช้เซลล์ทั้งหมดด้านบนหรือด้านล่าง
ขยายรายการดรอปดาวน์จาก เรียกใช้ทั้งหมด จากนั้นเลือก เรียกใช้เซลล์ด้านบน เพื่อเรียกใช้เซลล์ทั้งหมดที่อยู่เหนือเซลล์ปัจจุบันตามลําดับ เลือก เรียกใช้เซลล์ด้านล่าง เพื่อเรียกใช้เซลล์ปัจจุบันและเซลล์ทั้งหมดที่อยู่ด้านล่างของเซลล์ปัจจุบันตามลําดับ
ยกเลิกเซลล์ที่กําลังทํางานอยู่ทั้งหมด
เลือก ยกเลิกทั้งหมด เพื่อยกเลิกเซลล์หรือเซลล์ที่กําลังรออยู่ในคิว
หยุดเซสชัน
หยุดเซสชัน จะยกเลิกเซลล์ที่กําลังเรียกใช้และกําลังรอ และหยุดเซสชันปัจจุบัน คุณสามารถรีสตาร์ทเซสชันใหม่โดยการเลือกตัวเลือกเรียกใช้อีกครั้ง
การเรียกใช้การอ้างอิง
การอ้างอิงเรียกใช้สมุดบันทึก
นอกเหนือจาก การอ้างอิง notebookutils เรียกใช้ API คุณยังสามารถใช้ %run <notebook name>
คําสั่งเวทมนตร์เพื่ออ้างอิงสมุดบันทึกอื่นภายในบริบทของสมุดบันทึกอื่นได้ ตัวแปรทั้งหมดที่กําหนดไว้ในสมุดบันทึกอ้างอิงจะพร้อมใช้งานในสมุดบันทึกปัจจุบัน คําสั่ง %run
เวทมนตร์สนับสนุนการเรียกใช้ที่ซ้อนกัน แต่ไม่สนับสนุนการเรียกแบบเรียกใช้ซ้ํา คุณได้รับข้อยกเว้นถ้าความลึกของคําสั่งมีขนาดใหญ่กว่าห้า
ตัวอย่าง: %run Notebook1 { "parameterInt": 1, "parameterFloat": 2.5, "parameterBool": true, "parameterString": "abc" }
การอ้างอิงสมุดบันทึกทํางานได้ทั้งในโหมดโต้ตอบและไปป์ไลน์
หมายเหตุ
- ขณะนี้คําสั่ง
%run
นี้สนับสนุนเฉพาะสมุดบันทึกอ้างอิงในพื้นที่ทํางานเดียวกันด้วยสมุดบันทึกปัจจุบัน - คําสั่ง
%run
ในปัจจุบันสนับสนุนเฉพาะค่าพารามิเตอร์สูงสุดสี่ชนิด:int
,float
,bool
, และstring
ไม่สนับสนุนการดําเนินการแทนที่ตัวแปร - คําสั่ง
%run
ไม่สนับสนุนการอ้างอิงแบบซ้อนกันที่มีความลึกมากกว่าห้า
การอ้างอิงเรียกใช้สคริปต์
คําสั่ง %run
ยังช่วยให้คุณสามารถเรียกใช้ไฟล์ Python หรือ SQL ที่จัดเก็บไว้ในทรัพยากรที่มีอยู่แล้วภายในของสมุดบันทึกเพื่อให้คุณสามารถดําเนินการไฟล์ซอร์สโค้ดของคุณในสมุดบันทึกได้อย่างสะดวก
%run [-b/--builtin -c/--current] [script_file.py/.sql] [variables ...]
สําหรับตัวเลือก:
- -b/-builtin: ตัวเลือกนี้ระบุว่าคําสั่งค้นหาและเรียกใช้ไฟล์สคริปต์ที่ระบุจากทรัพยากรที่มีอยู่ภายในสมุดบันทึก
- -c/-current: ตัวเลือกนี้ช่วยให้แน่ใจว่าคําสั่งจะใช้ทรัพยากรที่มีอยู่แล้วภายในของสมุดบันทึกปัจจุบันเสมอ แม้ว่าสมุดบันทึกปัจจุบันจะถูกอ้างอิงด้วยสมุดบันทึกอื่นๆ ก็ตาม
ตัวอย่าง:
เมื่อต้องการเรียกใช้ script_file.py จากทรัพยากรที่มีอยู่ภายใน:
%run -b script_file.py
เมื่อต้องการเรียกใช้ script_file.sql จากทรัพยากรที่มีอยู่ภายใน:
%run -b script_file.sql
เมื่อต้องการเรียกใช้ script_file.py จากทรัพยากรที่มีอยู่ภายในด้วยตัวแปรเฉพาะ:
%run -b script_file.py { "parameterInt": 1, "parameterFloat": 2.5, "parameterBool": true, "parameterString": "abc" }
หมายเหตุ
ถ้าคําสั่งไม่มี -b/-builtin จะพยายามค้นหาและดําเนินการรายการสมุดบันทึกภายในพื้นที่ทํางานเดียวกันแทนทรัพยากรที่มีอยู่ภายใน
ตัวอย่างการใช้งานสําหรับกรณีการเรียกใช้ที่ซ้อนกัน:
- สมมติว่าเรามีสมุดบันทึกสองเล่ม
- สมุดบันทึก 1: ประกอบด้วย script_file1.py ในทรัพยากรที่มีอยู่ภายใน
- Notebook2: ประกอบด้วย script_file2.py ในทรัพยากรที่มีอยู่ภายใน
- เรามาใช้ Notebook1 ทํางานเป็นสมุดบันทึกหลักที่มีเนื้อหา:
%run Notebook2
- จากนั้น ใน สมุดบันทึก 2 คําแนะนําการใช้งานคือ:
- หากต้องการเรียกใช้ script_file1.py ใน Notebook1(สมุดบันทึกหลัก) โค้ดจะเป็น:
%run -b script_file1.py
- เมื่อต้องการเรียกใช้ script_file2.py ใน Notebook2(สมุดบันทึกปัจจุบัน) โค้ดจะเป็น:
%run -b -c script_file2.py
- หากต้องการเรียกใช้ script_file1.py ใน Notebook1(สมุดบันทึกหลัก) โค้ดจะเป็น:
ตัวสํารวจตัวแปร
สมุดบันทึก Fabric มีตัวสํารวจตัวแปรที่มีอยู่ภายในที่แสดงรายการชื่อตัวแปร ประเภท ความยาว และค่าในเซสชัน Spark ปัจจุบันสําหรับเซลล์ PySpark (Python) ตัวแปรเพิ่มเติมจะแสดงขึ้นโดยอัตโนมัติตามที่กําหนดไว้ในเซลล์โค้ด การคลิกที่ส่วนหัวของคอลัมน์แต่ละคอลัมน์จะเรียงลําดับตัวแปรในตาราง
หากต้องการเปิดหรือซ่อน variable explorer ให้เลือก ตัวแปร บนมุมมองริบบอนของสมุดบันทึก
หมายเหตุ
variable explorer สนับสนุนเฉพาะ Python เท่านั้น
ตัวบ่งชี้สถานะเซลล์
สถานะการดําเนินการของเซลล์แบบทีละขั้นตอนจะแสดงใต้เซลล์เพื่อช่วยให้คุณเห็นความคืบหน้าปัจจุบัน เมื่อการเรียกใช้เซลล์เสร็จสมบูรณ์ สรุปการดําเนินการพร้อมกับระยะเวลาและเวลาสิ้นสุดทั้งหมดจะปรากฏขึ้นและถูกเก็บไว้ที่นั่นสําหรับการอ้างอิงในอนาคต
ตัวบ่งชี้งาน Apache Spark แบบอินไลน์
สมุดบันทึก Fabric ใช้ Apache Spark เซลล์โค้ดจะดําเนินการบนคลัสเตอร์ Apache Spark จากระยะไกล ตัวบ่งชี้ความคืบหน้าของงาน Spark มีแถบความคืบหน้าแบบเรียลไทม์ที่ปรากฏขึ้นเพื่อช่วยให้คุณเข้าใจสถานะการทํางานของงาน จํานวนงานต่อแต่ละงานหรือขั้นตอนช่วยให้คุณระบุระดับขนานของงาน Spark ของคุณ คุณยังสามารถเจาะลึกลงใน Spark UI ของงานเฉพาะ (หรือขั้นตอน) ผ่านการเลือกลิงก์ในชื่องาน (หรือขั้นตอน)
คุณยังสามารถค้นหา ไฟล์บันทึก แบบเรียลไทม์ระดับเซลล์ที่อยู่ถัดจากตัวบ่งชี้ความคืบหน้า และ การวินิจฉัย สามารถให้คําแนะนําที่มีประโยชน์เพื่อช่วยปรับปรุงและแก้ไขจุดบกพร่องของโค้ด
ในการดําเนินการเพิ่มเติม คุณสามารถนําทางไปยังหน้ารายละเอียดแอปพลิเคชัน Spark และหน้า UI ของเว็บ Spark ได้อย่างง่ายดาย
การลงโทษลับ
เพื่อป้องกันข้อมูลประจําตัวจากการรั่วไหลโดยไม่ได้ตั้งใจเมื่อเรียกใช้สมุดบันทึก Fabric จะรองรับ การทําซ้ําลับ เพื่อแทนที่ค่าลับที่แสดงในผลลัพธ์ของเซลล์ด้วย[REDACTED]
การลงโทษลับใช้ได้กับ Python, Scala และ R.
คําสั่งเวทมนตร์ในสมุดบันทึก
คําสั่งเวทมนตร์ที่มีอยู่แล้วภายใน
คุณสามารถใช้คําสั่งเวทมนตร์ Ipython ที่คุ้นเคยได้ใน Fabric notebook ตรวจทานรายการคําสั่งเวทมนตร์ที่ใช้ได้ในปัจจุบันต่อไปนี้
หมายเหตุ
นี่เป็นเพียงคําสั่งมายากลเดียวที่สนับสนุนในไปป์ไลน์ Fabric: %%pyspark, %%spark, %%csharp, %%sql, %%configure
คําสั่งมายากลแบบบรรทัดที่พร้อมใช้งาน: %lsmagic, %time, %timeit, %history, %run, %load, %alias, %alias_magic, %autoawait, %autocall, %automagic, %bookmark, %cd, %colors, %dhist, %dirs, %doctest_mode, %killbgscripts, %load_ext, %logoff, %logoff %logon, %logstart, %logstate, %logstop, %magic, %matplotlib, %page, %pastebin, %pdef, %pdef, %pfile, %pinfo2, %popd, %pprint, %precision, %prun, %psearch, %psource, %pushd, %pwd, %pycat, %quickref, % rehashx, %reload_ext, %reset, %reset_selective, %sx, %system, %tb, %unalias, %unload_ext, %who, %who_ls, %who's, %xdel, %xmode
สมุดบันทึกสําหรับผ้ายังสนับสนุนคําสั่งการจัดการไลบรารีที่ปรับปรุงแล้ว %pip และ %conda สําหรับข้อมูลเพิ่มเติมเกี่ยวกับการใช้งาน ดูจัดการไลบรารี Apache Spark ใน Microsoft Fabric
คําสั่งมายากลของเซลล์ที่พร้อมใช้งาน: %%time, %%timeit, %%capture, %%writefile, %%sql, %%pyspark, %%spark, %%csharp, %%configure, %%html, %%bash, %%markdown, %%perl, %%script, %%sh
คําสั่งเวทมนตร์แบบกําหนดเอง
คุณยังสามารถสร้างคําสั่งเวทมนตร์แบบกําหนดเองเพิ่มเติมเพื่อตอบสนองความต้องการเฉพาะของคุณ ตัวอย่างมีดังนี้:
สร้างสมุดบันทึกด้วยชื่อ "MyLakehouseModule"
ในสมุดบันทึกอื่น อ้างอิงถึง "MyLakehouseModule" และคําสั่งเวทมนตร์ กระบวนการนี้คือวิธีที่คุณสามารถจัดระเบียบโครงการของคุณด้วยสมุดบันทึกที่ใช้ภาษาอื่นได้อย่างสะดวก
วิดเจ็ต IPython
วิดเจ็ต IPython เป็นออบเจ็กต์ Python ที่แสดงอยู่ในเบราว์เซอร์อย่างมีเหตุการณ์ คุณสามารถใช้ IPython Widgets เป็นตัวควบคุมที่มีรหัสต่ํา (ตัวอย่างเช่น แถบเลื่อนหรือกล่องข้อความ) ในสมุดบันทึกของคุณได้ เช่นเดียวกับสมุดบันทึก Jupyter ในขณะนี้ จะทํางานในบริบท Python เท่านั้น
เพื่อใช้วิดเจ็ต IPython
นําเข้าโมดูล ipywidgets ก่อนเพื่อใช้เฟรมเวิร์ก Jupyter Widget
import ipywidgets as widgets
ใช้ฟังก์ชันการแสดงผลระดับบนสุดเพื่อแสดงวิดเจ็ต หรือปล่อยนิพจน์ของชนิดวิดเจ็ตที่บรรทัดสุดท้ายของเซลล์โค้ด
slider = widgets.IntSlider() display(slider)
เรียกใช้เซลล์ วิดเจ็ตแสดงในพื้นที่เอาต์พุต
slider = widgets.IntSlider() display(slider)
ใช้การเรียกการแสดงผลหลายครั้ง () เพื่อแสดงอินสแตนซ์วิดเจ็ตเดียวกันหลายครั้ง เอกสารเหล่านั้นยังคงมีการซิงค์กัน
slider = widgets.IntSlider() display(slider) display(slider)
หากต้องการแสดงวิดเจ็ตสองรายการแยกจากกัน ให้สร้างอินสแตนซ์วิดเจ็ตสองอินสแตนซ์:
slider1 = widgets.IntSlider() slider2 = widgets.IntSlider() display(slider1) display(slider2)
วิดเจ็ตที่สนับสนุน
ชนิดของวิดเจ็ต | วิด เจ็ต |
---|---|
วิดเจ็ตตัวเลข | IntSlider, FloatSlider, FloatLogSlider, IntRangeSlider, FloatRangeSlider, IntProgress, FloatProgress, BoundedIntText, BoundedFloatText, IntText, FloatText |
วิดเจ็ตบูลีน | ToggleButton, กล่องกาเครื่องหมาย, ถูกต้อง |
วิดเจ็ตการเลือก | Dropdown, RadioButtons, Select, SelectionSlider, SelectionRangeSlider, ToggleButtons, SelectMultiple |
วิดเจ็ตสตริง | ข้อความ พื้นที่ข้อความ กล่องคําสั่งผสม รหัสผ่าน ป้ายชื่อ HTML คณิตศาสตร์ HTML รูป ปุ่ม |
วิดเจ็ตเล่น (ภาพเคลื่อนไหว) | ตัวเลือกวันที่ ตัวเลือกสี ตัวควบคุม |
วิดเจ็ตคอนเทนเนอร์หรือเค้าโครง | กล่อง, HBox, VBox, GridBox, หีบเพลง, แท็บ, เรียงซ้อน |
ข้อจำกัดที่ทราบ
วิดเจ็ตต่อไปนี้ยังไม่ได้รับการสนับสนุน การแก้ไขปัญหาชั่วคราวต่อไปนี้พร้อมใช้งาน:
ฟังก์ชัน การแก้ไขปัญหาชั่วคราว วิดเจ็ตเอาต์พุต คุณสามารถใช้ ฟังก์ชัน print() แทนการเขียนข้อความลงใน stdout ได้ widgets.jslink() คุณสามารถใช้ ฟังก์ชัน widgets.link() เพื่อเชื่อมโยงวิดเจ็ตสองวิดเจ็ตที่คล้ายกัน วิดเจ็ต FileUpload ยังไม่ได้รับการสนับสนุน ฟังก์ชันการแสดงผลส่วนกลางของ Fabric ไม่รองรับการแสดงวิดเจ็ตหลายรายการในหนึ่งการโทร (ตัวอย่างเช่น display(a, b)) ลักษณะการทํางานนี้จะแตกต่างจากฟังก์ชันการแสดงผล IPython
ถ้าคุณปิดสมุดบันทึกที่มีวิดเจ็ต IPython คุณจะไม่สามารถดูหรือโต้ตอบได้จนกว่าคุณจะดําเนินการเซลล์ที่สอดคล้องกันอีกครั้ง
ไม่รองรับฟังก์ชันการโต้ตอบ (ipywidgets.interact)
รวมสมุดบันทึก
กําหนดเซลล์พารามิเตอร์
เมื่อต้องการกําหนดพารามิเตอร์สมุดบันทึกของคุณ ให้เลือกจุดไข่ปลา (...) เพื่อเข้าถึง คําสั่งเพิ่มเติม ที่แถบเครื่องมือเซลล์ จากนั้นเลือก สลับเซลล์ พารามิเตอร์ เพื่อกําหนดเซลล์เป็นเซลล์พารามิเตอร์
เซลล์พารามิเตอร์มีประโยชน์สําหรับการรวมสมุดบันทึกในไปป์ไลน์ กิจกรรมไปป์ไลน์จะค้นหาเซลล์พารามิเตอร์และถือว่าเซลล์นี้เป็นค่าเริ่มต้นสําหรับพารามิเตอร์ที่ส่งผ่านในเวลาการดําเนินการ กลไกการดําเนินการเพิ่มเซลล์ใหม่ใต้เซลล์พารามิเตอร์ที่มีพารามิเตอร์ป้อนเข้าเพื่อเขียนทับค่าเริ่มต้น
กําหนดค่าพารามิเตอร์จากไปป์ไลน์
หลังจากที่คุณสร้างสมุดบันทึกด้วยพารามิเตอร์คุณสามารถดําเนินการจากไปป์ไลน์ด้วยกิจกรรมสมุดบันทึกสําหรับ Fabric หลังจากที่คุณเพิ่มกิจกรรมไปยังพื้นที่ทํางานของไปป์ไลน์ของคุณแล้ว คุณสามารถตั้งค่าพารามิเตอร์ภายใต้ ส่วนพารามิเตอร์ พื้นฐานของ แท็บการตั้งค่า ได้
เมื่อกําหนดค่าพารามิเตอร์ คุณสามารถใช้ภาษาของนิพจน์ไปป์ไลน์หรือฟังก์ชันและตัวแปรได้
คําสั่งเวทมนตร์การกําหนดค่าเซสชัน Spark
คุณสามารถปรับแต่งเซสชัน Spark ของคุณให้เป็นแบบส่วนตัวด้วยคําสั่ง เวทมนตร์ %% กําหนดค่าได้ โน้ตบุ๊คผ้ารองรับ vCores ที่กําหนดเองหน่วยความจําของไดร์เวอร์และ Executor คุณสมบัติ Apache Spark จุดติดสระว่ายน้ําและเลคเฮ้าส์เริ่มต้นของเซสชันโน้ตบุ๊ค ซึ่งสามารถใช้ในทั้งสมุดบันทึกแบบโต้ตอบและกิจกรรมสมุดบันทึกสําหรับไปป์ไลน์ เราขอแนะนําให้คุณเรียกใช้ คําสั่ง %%configure ที่จุดเริ่มต้นของสมุดบันทึกของคุณ หรือคุณต้องเริ่มเซสชัน Spark ใหม่เพื่อให้การตั้งค่ามีผล
%%configure
{
// You can get a list of valid parameters to config the session from https://github.com/cloudera/livy#request-body.
"driverMemory": "28g", // Recommended values: ["28g", "56g", "112g", "224g", "400g"]
"driverCores": 4, // Recommended values: [4, 8, 16, 32, 64]
"executorMemory": "28g",
"executorCores": 4,
"jars": ["abfs[s]: //<file_system>@<account_name>.dfs.core.windows.net/<path>/myjar.jar", "wasb[s]: //<containername>@<accountname>.blob.core.windows.net/<path>/myjar1.jar"],
"conf":
{
// Example of customized property, you can specify count of lines that Spark SQL returns by configuring "livy.rsc.sql.num-rows".
"livy.rsc.sql.num-rows": "3000",
"spark.log.level": "ALL"
},
"defaultLakehouse": { // This overwrites the default lakehouse for current session
"name": "<lakehouse-name>",
"id": "<(optional) lakehouse-id>",
"workspaceId": "<(optional) workspace-id-that-contains-the-lakehouse>" // Add workspace ID if it's from another workspace
},
"mountPoints": [
{
"mountPoint": "/myMountPoint",
"source": "abfs[s]://<file_system>@<account_name>.dfs.core.windows.net/<path>"
},
{
"mountPoint": "/myMountPoint1",
"source": "abfs[s]://<file_system>@<account_name>.dfs.core.windows.net/<path1>"
},
],
"environment": {
"id": "<environment-id>",
"name": "<environment-name>"
},
"sessionTimeoutInSeconds": 1200,
"useStarterPool": false, // Set to true to force using starter pool
"useWorkspacePool": "<workspace-pool-name>"
}
หมายเหตุ
- เราขอแนะนําให้คุณตั้งค่าเดียวกันสําหรับ "DriverMemory" และ "ExecutorMemory" ใน %%configure ค่า "driverCores" และ "executorCores" ควรเหมือนกัน
- "defaultLakehouse" จะเขียนทับเลคเฮ้าส์ที่ปักหมุดไว้ของคุณใน Lakehouse explorer แต่จะใช้ได้เฉพาะในเซสชันสมุดบันทึกปัจจุบันของคุณเท่านั้น
- คุณสามารถใช้ %%configure ในไปป์ไลน์ Fabric แต่ถ้าไม่ได้ตั้งค่าในเซลล์โค้ดแรก การเรียกใช้ไปป์ไลน์จะล้มเหลวเนื่องจากไม่สามารถเริ่มเซสชันใหม่ได้
- %%configure ที่ใช้ใน notebookutils.run จะถูกละเว้น แต่ใช้ใน %run notebook จะยังคงทํางานต่อไป
- ต้องใช้คุณสมบัติการกําหนดค่า Spark มาตรฐานในเนื้อหา "conf" Fabric ไม่สนับสนุนการอ้างอิงระดับแรกสําหรับคุณสมบัติการกําหนดค่า Spark
- คุณสมบัติพิเศษบางอย่างของ Spark รวมถึง "spark.driver.cores", "spark.executor.cores", "spark.driver.memory", "spark.executor.memory" และ "spark.executor.instances" จะไม่ส่งผลในเนื้อความ "conf"
การกําหนดค่าเซสชันที่มีการกําหนดพารามิเตอร์จากไปป์ไลน์
การกําหนดค่าเซสชันที่มีการกําหนดพารามิเตอร์ช่วยให้คุณสามารถแทนที่ค่าใน %%กําหนดค่ามายากลด้วยพารามิเตอร์กิจกรรมของไปป์ไลน์ที่เรียกใช้สมุดบันทึก เมื่อเตรียมเซลล์รหัส %%% คุณสามารถแทนที่ค่าเริ่มต้นได้ (สามารถกําหนดค่าได้ 4 และ "2000" ในตัวอย่างด้านล่าง) ด้วยวัตถุดังนี้:
{
"parameterName": "paramterNameInPipelineNotebookActivity",
"defaultValue": "defaultValueIfNoParamterFromPipelineNotebookActivity"
}
%%configure
{
"driverCores":
{
"parameterName": "driverCoresFromNotebookActivity",
"defaultValue": 4
},
"conf":
{
"livy.rsc.sql.num-rows":
{
"parameterName": "rows",
"defaultValue": "2000"
}
}
}
สมุดบันทึกใช้ค่าเริ่มต้นถ้าคุณเรียกใช้สมุดบันทึกในโหมดโต้ตอบโดยตรง หรือถ้ากิจกรรมสมุดบันทึกไปป์ไลน์ไม่มีพารามิเตอร์ที่ตรงกับ "activityParameterName"
ในระหว่างการเรียกใช้ไปป์ไลน์ คุณสามารถกําหนดค่าการตั้งค่ากิจกรรมสมุดบันทึกของไปป์ไลน์ได้ดังนี้:
ถ้าคุณต้องการเปลี่ยนแปลงการกําหนดค่าเซสชัน ชื่อพารามิเตอร์ของกิจกรรมสมุดบันทึกไปป์ไลน์ควรเหมือนกับ parameterName
ในสมุดบันทึก ในตัวอย่างนี้ของการเรียกใช้ไปป์ไลน์ driverCores
ใน %%configure จะถูกแทนที่ด้วย 8 และ livy.rsc.sql.num-rows
ถูกแทนที่ด้วย 4000
หมายเหตุ
- ถ้าการเรียกใช้ไปป์ไลน์ล้มเหลวเนื่องจากคุณใช้ %%กําหนดค่าคําสั่งเวทมนตร์ ให้ค้นหาข้อมูลข้อผิดพลาดเพิ่มเติมโดยการเรียกใช้ %%% กําหนดค่าเซลล์มายากลในโหมดโต้ตอบของสมุดบันทึก
- การเรียกใช้สมุดบันทึกตามกําหนดการไม่สนับสนุนการกําหนดค่าเซสชันที่มีการกําหนดพารามิเตอร์
การบันทึก Python ในสมุดบันทึก
คุณสามารถค้นหาไฟล์บันทึก Python และตั้งค่าระดับการบันทึกและรูปแบบต่าง ๆ ได้ เช่น โค้ดตัวอย่างที่แสดงที่นี่:
import logging
# Customize the logging format for all loggers
FORMAT = "%(asctime)s - %(name)s - %(levelname)s - %(message)s"
formatter = logging.Formatter(fmt=FORMAT)
for handler in logging.getLogger().handlers:
handler.setFormatter(formatter)
# Customize log level for all loggers
logging.getLogger().setLevel(logging.INFO)
# Customize the log level for a specific logger
customizedLogger = logging.getLogger('customized')
customizedLogger.setLevel(logging.WARNING)
# logger that use the default global log level
defaultLogger = logging.getLogger('default')
defaultLogger.debug("default debug message")
defaultLogger.info("default info message")
defaultLogger.warning("default warning message")
defaultLogger.error("default error message")
defaultLogger.critical("default critical message")
# logger that use the customized log level
customizedLogger.debug("customized debug message")
customizedLogger.info("customized info message")
customizedLogger.warning("customized warning message")
customizedLogger.error("customized error message")
customizedLogger.critical("customized critical message")
ดูประวัติของคําสั่งอินพุต
โน้ตบุ๊ค Fabric สนับสนุนคําสั่ง %history
มายากลเพื่อพิมพ์ประวัติคําสั่งป้อนเข้าที่ดําเนินการในเซสชันปัจจุบันเมื่อเปรียบเทียบกับคําสั่ง %history
Jupyter Ipython มาตรฐานการทํางานสําหรับบริบทหลายภาษาในสมุดบันทึก
%history [-n] [range [range ...]]
สําหรับตัวเลือก:
- -n: พิมพ์หมายเลขการดําเนินการ
ช่วงที่สามารถเป็น:
- N: พิมพ์รหัสของเซลล์ที่ดําเนินการ Nth
- M-N: พิมพ์รหัสจาก Mth ไปยังเซลล์ที่ดําเนินการ Nth
ตัวอย่าง:
- พิมพ์ประวัติการป้อนข้อมูลจากเซลล์ที่ 1 ถึงเซลล์ที่ 2:
%history -n 1-2
แป้นพิมพ์ลัด
คล้ายกับสมุดบันทึก Jupyter Fabric มีส่วนติดต่อผู้ใช้ที่ปรับเปลี่ยนได้ แป้นพิมพ์จะมีสิ่งต่างๆ แตกต่างกันไป ขึ้นอยู่กับโหมดที่เซลล์ของสมุดบันทึกอยู่ สมุดบันทึกสําหรับผ้ารองรับสองโหมดต่อไปนี้สําหรับเซลล์โค้ดที่ระบุ: โหมดคําสั่งและโหมดแก้ไข
เซลล์อยู่ในโหมดคําสั่งเมื่อไม่มีเคอร์เซอร์ข้อความที่พร้อมท์ให้คุณพิมพ์ เมื่อเซลล์อยู่ในโหมดคําสั่ง คุณสามารถแก้ไขสมุดบันทึกทั้งหมด แต่ไม่สามารถพิมพ์ลงในเซลล์แต่ละเซลล์ได้ ใส่โหมดคําสั่งโดยการกด ESC หรือใช้เมาส์เพื่อเลือกภายนอกพื้นที่ตัวแก้ไขของเซลล์
สามารถระบุโหมดแก้ไขจากเคอร์เซอร์ข้อความที่พร้อมท์ให้คุณพิมพ์ในพื้นที่ตัวแก้ไข เมื่อเซลล์อยู่ในโหมดแก้ไข คุณสามารถพิมพ์ลงในเซลล์ได้ ใส่โหมดแก้ไขโดยการกด Enter หรือใช้เมาส์เพื่อเลือกพื้นที่ตัวแก้ไขของเซลล์
แป้นพิมพ์ลัดในโหมดคําสั่ง
การดำเนินการ | ทางลัดสมุดบันทึก |
---|---|
เรียกใช้เซลล์ปัจจุบันและเลือกด้านล่าง | Shift+Enter |
เรียกใช้เซลล์ปัจจุบันและแทรกด้านล่าง | Alt+ป้อน |
เรียกใช้เซลล์ปัจจุบัน | Ctrl + Enter |
เลือกเซลล์ด้านบน | ขึ้น |
เลือกเซลล์ด้านล่าง | ลง |
เลือกเซลล์ก่อนหน้า | ซ |
เลือกเซลล์ถัดไป | J |
แทรกเซลล์ด้านบน | ท |
แทรกเซลล์ด้านล่าง | B |
ลบเซลล์ที่เลือก | Shift + D |
สลับไปยังโหมดแก้ไข | Enter |
คีย์ลัดในโหมดแก้ไข
เมื่อใช้ปุ่มลัดการกดแป้นพิมพ์ต่อไปนี้ คุณสามารถนําทางและเรียกใช้โค้ดในสมุดบันทึกสําหรับ Fabric ได้อย่างง่ายดายเมื่ออยู่ในโหมด แก้ไข
การดำเนินการ | ทางลัดสมุดบันทึก |
---|---|
ย้ายเคอร์เซอร์ขึ้น | ขึ้น |
ย้ายเคอร์เซอร์ลง | ลง |
ยกเลิกการดำเนินการ | Ctrl + Z |
ทําซ้ำ | Ctrl + Y |
แสดงข้อคิดเห็นหรือไม่แสดงข้อคิดเห็น | Ctrl + / ข้อคิดเห็น: Ctrl + K + C Uncomment: Ctrl + K + U |
ลบคําก่อน | Ctrl + Backspace |
ลบคําหลังจาก | Ctrl + Delete |
ไปที่จุดเริ่มต้นของเซลล์ | Ctrl + Home |
ไปที่เซลล์สิ้นสุด | Ctrl + End |
ไปทางซ้ายหนึ่งคํา | Ctrl + ซ้าย |
ไปทางขวาหนึ่งคํา | Ctrl + ด้านขวา |
เลือกทั้งหมด | Ctrl + A |
ย่อหน้า | Ctrl + ] |
เยื้อง | Ctrl + [ |
สลับไปยังโหมดคําสั่ง | Esc |
เมื่อต้องการค้นหาคีย์ลัดทั้งหมด เลือกมุมมองบนริบบอนสมุดบันทึก จากนั้นเลือก Keybindings