Cara menggunakan RSUB pada Python

Struktur data adalah tulang punggung komputasi inti dan kami menggunakannya untuk memecahkan berbagai masalah. Konsep yang jelas dalam DSA dapat sangat membantu Anda untuk membangun program yang kompleks dan mengembangkan keterampilan Anda untuk menjadi programmer yang baik.

Artikel ini berfokus pada implementasi Queue menggunakan Linked List dalam Bahasa Pemrograman Python.

Baca juga: Membuat Daftar Tertaut Tunggal dalam Bahasa Pemrograman Python.

  • Apa itu Antrian?
  • Fitur dasar Antrian
  • Aplikasi Antrian
  • Implementasi Antrian Menggunakan Linked List (Kode)

Apa itu Antrian?

Antrian adalah struktur data abstrak di mana kita dapat menambahkan item baru dan menghapus item dari dua ujung (Depan dan Belakang). Prosesnya diverbalkan sebagai antri dan Penundaan, masing-masing.

Pertimbangkan contoh garis fisik orang:

Orang-orang dapat ditambahkan ke akhir baris yang disebut (enqueuing), dan orang-orang yang dikeluarkan dari garis depan disebut (dequeuing). Persis seperti ini, sistem antrian bekerja di dunia nyata. Jika Anda pergi ke loket tiket untuk membeli tiket bus dan berada di urutan pertama dalam antrian, maka Anda akan menjadi orang pertama yang mendapatkan tiketnya. Benar? Sama halnya dengan struktur data Antrian. Data yang dimasukkan terlebih dahulu akan keluar dari antrian terlebih dahulu.

Konsep ini digambarkan sebagai istilah yang disebut FIFOyang merupakan singkatan dari pertama masuk pertama keluar. Ini adalah struktur data di mana elemen pertama yang ditambahkan ke koleksi akan dihapus pertama kali.

Fitur dasar Antrian

  1. Seperti tumpukan, antrian juga merupakan struktur data liner.
  2. Antrian adalah struktur FIFO ( First in First Out ).
  3. Mengintip() fungsi umumnya digunakan untuk mengembalikan nilai elemen pertama tanpa menghilangkannya.

Aplikasi Antrian

Antrian digunakan untuk mengelola grup objek apa pun dalam urutan FIFO dan elemen lain untuk gilirannya, seperti dalam skenario berikut:

  1. Melayani permintaan pada satu sumber daya bersama, seperti printer, penjadwalan tugas CPU, menyalin banyak data, dll.
  2. Digunakan dalam sistem telepon Call Center, menggunakan Antrian untuk menahan orang yang menelepon mereka dalam urutan sampai perwakilan layanan bebas.
  3. Penanganan interupsi dalam sistem waktu nyata.

Implementasi Antrian Menggunakan Linked List (Kode)

Sebuah antrian dapat diimplementasikan dengan menggunakan Array, Tumpukan, atau Daftar Tertaut tetapi cara termudah adalah metode array. Kami tidak khawatir tentang implementasi array di sini, kami akan melihat representasi daftar tertaut.

Cara menggunakan RSUB pada Python

Kode:

Algoritma yang digunakan untuk mengimplementasikan antrian menggunakan linked list adalah: Saya akan menyimpan referensi ke depan dan belakang antrian untuk membuat enqueuing dan dequeuing berjalan di O(1) waktu konstan. Setiap kali saya ingin memasukkan ke dalam antrian, saya menambahkan elemen baru ke akhir daftar tertaut dan memperbarui kembali penunjuk. Ketika saya ingin melakukan dequeue, saya mengembalikan node pertama dalam daftar tertaut dan memperbarui depan penunjuk.

Cara menggunakan RSUB pada Python

Keluaran:

Di sini Kita dapat melihat bahwa elemen pertama ‘a’ yang dimasukkan terlebih dahulu juga keluar dari antrian terlebih dahulu.

Cara menggunakan RSUB pada Python

Fungsi tabel untuk fitur tautan Python yang mendistribusikan data dengan nilai arbitrer dan memprosesnya. Ini dapat digunakan untuk pemrosesan tanpa hubungan apa pun antara catatan data sisi tabel sebagai argumen.

Pisahkan data di tabel Dr.Sum, buat DataFrame untuk setiap pemisahan, dan berikan ke program Python.

Saat beroperasi pada beberapa server data dalam memori, pemrosesan paralel dilakukan dengan cara berikut.

  • Ketika metode distribusi dalam memori adalah BAHKAN

    Untuk setiap server data dalam memori, proses pemrosesan Python dimulai dengan jumlah maksimum paralel yang ditentukan oleh argumen parallel_count.

  • Ketika metode distribusi dalam memori adalah ALL

    Pada server data dalam memori tertentu yang ditentukan oleh Dr.Sum, proses pemrosesan Python dimulai dengan jumlah paralel maksimum yang ditentukan oleh argumen parallel_count. Proses pemrosesan Python tidak dimulai kecuali pada server data dalam memori tertentu.

Format

Tentukan dalam klausa FROM dalam format berikut.

dutf::parallel_py (<input> <py_file_path> <func_name> [<schema_func_name>] [<sort_column>] <parallel_count>] [<args>]) <nama alias>

Argumen

Argumen dari fungsi ini ditafsirkan sebagai argumen kata kunci yang ditentukan dalam format "kata kunci = nilai". Menentukan hanya nilai yang akan ditafsirkan sebagai argumen posisi yang ditetapkan dalam urutan argumen. Jika Anda tidak menentukan "Kata Kunci =" (dengan menentukan dengan argumen posisi), tentukan argumen dalam urutan yang ditunjukkan dalam "Format".

Anda tidak dapat menentukan argumen posisi setelah argumen kata kunci. Setelah Anda menentukan argumen kata kunci, Anda perlu menentukannya selanjutnya hanya dengan argumen kata kunci.

Anda dapat menggunakan kata kunci dengan karakter alfanumerik setengah lebar, garis bawah, canar setengah lebar, dan karakter lebar penuh. Nama tidak boleh dimulai dengan garis bawah atau angka setengah lebar. Selain itu, Anda tidak dapat menggunakan kata-kata khusus Dr.Sum.

  • input

    Menentukan nama objek Dr.Sum yang akan diteruskan sebagai data input ke program Python. Anda juga dapat menentukan subkueri.

    Data ini dihasilkan sebagai DataFrame untuk panda. Anda tidak perlu diapit dengan tanda kutip ganda apakah Anda menentukan dengan argumen kata kunci atau argumen posisi. Tentukan hanya nama objek.

  • py_file_path

    Menentukan nama file skrip Python yang akan dieksekusi dari pernyataan SQL. Tentukan jalur mulai dari PY_SCRIPT_ROOT, seperti "py_file_path = "PY_SCRIPT_ROOT/echo.py".

    Tipe data adalah tipe string dan ditentukan dalam tanda kutip ganda "".

  • func_name

    Menentukan nama fungsi yang akan dieksekusi dalam program Python. Nama fungsi harus sesuai dengan nama fungsi yang dijelaskan dalam file skrip.

    Tipe data adalah tipe string dan ditentukan dalam tanda kutip ganda "".

  • schema_func_name

    Menentukan nama fungsi yang akan dieksekusi dalam program Python yang mengembalikan skema tabel hasil. Nama fungsi harus sesuai dengan nama fungsi yang dijelaskan dalam file skrip. Jika tabel hasil tidak diperlukan, Anda dapat menghilangkannya.

    Tipe data adalah tipe string dan ditentukan dalam tanda kutip ganda "".

  • sort_column

    Jika Anda mengurutkan tabel yang ditentukan dalam input argumen sebelum meneruskannya ke program Python, tentukan nama item sebagai kunci pengurutan. Tabel diurutkan dalam urutan menaik.

    Tipe data adalah tipe string dan ditentukan dalam tanda kutip ganda "".

  • parallel_count

    Menentukan nilai jumlah proses pemrosesan Python yang akan dimulai untuk setiap server data dalam memori. Kecepatan pemrosesan dioptimalkan karena data didistribusikan ke proses pemrosesan yang dimulai. Standarnya adalah "2". Tipe datanya adalah tipe integer.

  • argumen

    Menentukan nilai yang akan diteruskan sebagai argumen ke fungsi yang dijalankan dalam program Python.

    Hanya spesifikasi dalam format argumen kata kunci yang valid untuk argumen ini. Tentukan sebagai "args = ["arg1", 2]". Tambahkan "[ ]" ke awal dan akhir daftar argumen di sisi kanan. Tentukan jenis string dalam tanda kutip ganda "". Hanya nilai yang ditentukan untuk tipe numerik.

    Anda dapat menghilangkan opsi ini jika fungsi yang dijelaskan di sisi Python tidak memiliki argumen.

  • Nama alias

    Alias tabel apa pun harus ditentukan dalam fungsi tautan Python.

Nilai kembali

Nilai yang dikembalikan sama dengan fungsi serial_py.

Contoh

Berikut ini menunjukkan contoh pengaturan.

Contoh 1

Jalankan proses "python_script_sample.py" yang dijelaskan dalam "5-8 Debug program Python " dalam bentuk argumen kata kunci.

PILIH * DARI udtf::parallel_py( Contoh, py_file_path="PY_SCRIPT_ROOT/python_script_sample.py", func_name="echo", schema_func_name="echo_schema", sort_column="PREFECTURE", parallel_count=3, args=["arg1", 2 ] )T;

Contoh 2

Jalankan proses dalam Contoh Eksekusi 1 dalam format argumen posisi. Argumen ditentukan dalam urutan dalam format.

PILIH * FROM udtf::parallel_py( Contoh, "PY_SCRIPT_ROOT/python_script_sample.py", "echo", "echo_schema", "Prefektur", 3, args=["arg1", 2] )T;

topik-topik yang berkaitan

  • 6-9-4 serial_py (Jalankan proses pemrosesan Python secara serial)

  • "5-7-1 Fungsi pemrosesan " di "Manual pengembangan Dr.Sum Server"

  • "5-7-2 Fungsi pengambilan skema tabel hasil " di "Manual pengembangan Dr.Sum Server"

  • "5-9 Menerapkan program untuk Python " di "Manual pengembangan Dr.Sum Server"