Bagikan melalui


Mengimpor modul Python dari folder Git atau file ruang kerja

Anda dapat menyimpan kode Python di folder Databricks Git atau di file ruang kerja lalu mengimpor kode Python tersebut ke dalam alur Tabel Langsung Delta Anda. Untuk informasi selengkapnya tentang bekerja dengan modul di folder Git atau file ruang kerja, lihat Bekerja dengan modul Python dan R.

Catatan

Anda tidak dapat mengimpor kode sumber dari buku catatan yang disimpan di folder Databricks Git atau file ruang kerja. Sebagai gantinya, tambahkan buku catatan secara langsung saat Anda membuat atau mengedit alur. Lihat Membuat alur.

Mengimpor modul Python ke alur Delta Live Tables

Contoh berikut menunjukkan mengimpor kueri himpunan data sebagai modul Python dari file ruang kerja. Meskipun contoh ini menjelaskan penggunaan file ruang kerja untuk menyimpan kode sumber alur, Anda dapat menggunakannya dengan kode sumber yang disimpan dalam folder Git.

Untuk menjalankan contoh ini, gunakan langkah-langkah berikut:

  1. Klik Ikon Ruang KerjaRuang Kerja di bilah samping ruang kerja Azure Databricks Anda untuk membuka browser ruang kerja.

  2. Gunakan browser ruang kerja untuk memilih direktori untuk modul Python.

  3. Klik Menu kebab di kolom paling kanan direktori yang dipilih dan klik Buat > File.

  4. Masukkan nama untuk file, misalnya, clickstream_raw_module.py. Editor file terbuka. Untuk membuat modul untuk membaca data sumber ke dalam tabel, masukkan yang berikut ini di jendela editor:

    from dlt import *
    
    json_path = "/databricks-datasets/wikipedia-datasets/data-001/clickstream/raw-uncompressed-json/2015_2_clickstream.json"
    
    def create_clickstream_raw_table(spark):
      @table
      def clickstream_raw():
        return (
          spark.read.json(json_path)
        )
    
  5. Untuk membuat modul yang membuat tabel baru yang berisi data yang disiapkan, buat file baru di direktori yang sama, masukkan nama untuk file, misalnya, clickstream_prepared_module.py, dan masukkan yang berikut ini di jendela editor baru:

    from clickstream_raw_module import *
    from dlt import read
    from pyspark.sql.functions import *
    from pyspark.sql.types import *
    
    def create_clickstream_prepared_table(spark):
      create_clickstream_raw_table(spark)
      @table
      @expect("valid_current_page_title", "current_page_title IS NOT NULL")
      @expect_or_fail("valid_count", "click_count > 0")
      def clickstream_prepared():
        return (
          read("clickstream_raw")
            .withColumn("click_count", expr("CAST(n AS INT)"))
            .withColumnRenamed("curr_title", "current_page_title")
            .withColumnRenamed("prev_title", "previous_page_title")
            .select("current_page_title", "click_count", "previous_page_title")
        )
    
  6. Selanjutnya, buat buku catatan alur. Buka halaman arahan Azure Databricks Anda dan pilih Buat buku catatan, atau klikIkon Baru Baru di bar samping dan pilih Buku Catatan. Anda juga bisa membuat buku catatan di browser ruang kerja dengan mengklik Menu kebab dan klik Buat > Buku Catatan.

  7. Beri nama buku catatan Anda dan konfirmasikan Python adalah bahasa default.

  8. Klik Buat.

  9. Masukkan kode contoh di buku catatan.

    Catatan

    Jika buku catatan Anda mengimpor modul atau paket dari jalur file ruang kerja atau jalur folder Git yang berbeda dari direktori buku catatan, Anda harus menambahkan jalur ke file secara manual menggunakan sys.path.append().

    Jika Anda mengimpor file dari folder Git, Anda harus membuka /Workspace/ jalur sebelumnya. Contohnya,sys.path.append('/Workspace/...'). Menghilangkan /Workspace/ dari jalur menghasilkan kesalahan.

    Jika modul atau paket disimpan di direktori yang sama dengan notebook, Anda tidak perlu menambahkan jalur secara manual. Anda juga tidak perlu menambahkan jalur secara manual saat mengimpor dari direktori akar folder Git karena direktori akar secara otomatis ditambahkan ke jalur.

    import sys, os
    # You can omit the sys.path.append() statement when the imports are from the same directory as the notebook.
    sys.path.append(os.path.abspath('<module-path>'))
    
    import dlt
    from clickstream_prepared_module import *
    from pyspark.sql.functions import *
    from pyspark.sql.types import *
    
    create_clickstream_prepared_table(spark)
    
    @dlt.table(
      comment="A table containing the top pages linking to the Apache Spark page."
    )
    def top_spark_referrers():
      return (
        dlt.read("clickstream_prepared")
          .filter(expr("current_page_title == 'Apache_Spark'"))
          .withColumnRenamed("previous_page_title", "referrer")
          .sort(desc("click_count"))
          .select("referrer", "click_count")
          .limit(10)
      )
    

    Ganti <module-path> dengan jalur ke direktori yang berisi modul Python untuk diimpor.

  10. Buat alur menggunakan buku catatan baru.

  11. Untuk menjalankan alur, di halaman Detail alur, klik Mulai.

Anda juga dapat mengimpor kode Python sebagai paket. Cuplikan kode berikut dari buku catatan Delta Live Tables mengimpor test_utils paket dari dlt_packages direktori di dalam direktori yang sama dengan buku catatan. dlt_packages Direktori berisi file test_utils.py dan __init__.py, dan test_utils.py mendefinisikan fungsi create_test_table():

import dlt

@dlt.table
def my_table():
  return dlt.read(...)

# ...

import dlt_packages.test_utils as test_utils
test_utils.create_test_table(spark)