Spark SQL - Panduan Cepat

Industri menggunakan Hadoop secara ekstensif untuk menganalisis kumpulan data mereka. Alasannya adalah karena kerangka kerja Hadoop didasarkan pada model pemrograman sederhana (MapReduce) dan memungkinkan solusi komputasi yang dapat diskalakan, fleksibel, toleran terhadap kesalahan, dan hemat biaya. Di sini yang menjadi perhatian utama adalah menjaga kecepatan dalam memproses dataset besar dalam hal waktu tunggu antara query dan waktu tunggu untuk menjalankan program.

Spark diperkenalkan oleh Apache Software Foundation untuk mempercepat proses perangkat lunak komputasi komputasi Hadoop.

Berbeda dengan kepercayaan umum, Spark is not a modified version of Hadoopdan sebenarnya tidak bergantung pada Hadoop karena memiliki pengelolaan klusternya sendiri. Hadoop hanyalah salah satu cara untuk menerapkan Spark.

Spark menggunakan Hadoop dalam dua cara - salah satunya storage dan kedua processing. Karena Spark memiliki komputasi manajemen klusternya sendiri, Spark menggunakan Hadoop hanya untuk tujuan penyimpanan.

Apache Spark

Apache Spark adalah teknologi komputasi klaster secepat kilat, dirancang untuk komputasi cepat. Ini didasarkan pada Hadoop MapReduce dan memperluas model MapReduce untuk menggunakannya secara efisien untuk lebih banyak jenis komputasi, yang mencakup kueri interaktif dan pemrosesan aliran. Fitur utama Spark adalah miliknyain-memory cluster computing yang meningkatkan kecepatan pemrosesan aplikasi.

Spark dirancang untuk mencakup berbagai beban kerja seperti aplikasi batch, algoritme berulang, kueri interaktif, dan streaming. Selain mendukung semua beban kerja ini dalam sistem masing-masing, ini mengurangi beban manajemen dalam memelihara alat terpisah.

Evolusi Apache Spark

Spark adalah salah satu sub proyek Hadoop yang dikembangkan pada tahun 2009 di AMPLab UC Berkeley oleh Matei Zaharia. Itu Open Sourced pada tahun 2010 di bawah lisensi BSD. Itu didonasikan ke yayasan perangkat lunak Apache pada tahun 2013, dan sekarang Apache Spark telah menjadi proyek Apache tingkat atas mulai Feb-2014.

Fitur Apache Spark

Apache Spark memiliki fitur berikut.

  • Speed- Spark membantu menjalankan aplikasi di cluster Hadoop, hingga 100 kali lebih cepat di memori, dan 10 kali lebih cepat saat dijalankan di disk. Hal ini dimungkinkan dengan mengurangi jumlah operasi baca / tulis ke disk. Ini menyimpan data pemrosesan menengah dalam memori.

  • Supports multiple languages- Spark menyediakan API bawaan di Java, Scala, atau Python. Karenanya, Anda dapat menulis aplikasi dalam berbagai bahasa. Spark hadir dengan 80 operator tingkat tinggi untuk kueri interaktif.

  • Advanced Analytics- Spark tidak hanya mendukung 'Map' dan 'reduce'. Ini juga mendukung kueri SQL, Data streaming, Pembelajaran mesin (ML), dan algoritma Grafik.

Spark Dibangun di Hadoop

Diagram berikut menunjukkan tiga cara bagaimana Spark dapat dibuat dengan komponen Hadoop.

Ada tiga cara penerapan Spark seperti yang dijelaskan di bawah ini.

  • Standalone- Penerapan Spark Standalone berarti Spark menempati tempat di atas HDFS (Hadoop Distributed File System) dan ruang dialokasikan untuk HDFS, secara eksplisit. Di sini, Spark dan MapReduce akan berjalan berdampingan untuk mencakup semua pekerjaan percikan di cluster.

  • Hadoop Yarn- Penerapan Hadoop Yarn berarti, sederhananya, percikan berjalan di Yarn tanpa perlu pra-instalasi atau akses root. Ini membantu mengintegrasikan Spark ke ekosistem Hadoop atau tumpukan Hadoop. Ini memungkinkan komponen lain untuk berjalan di atas tumpukan.

  • Spark in MapReduce (SIMR)- Spark di MapReduce digunakan untuk meluncurkan pekerjaan percikan selain penerapan mandiri. Dengan SIMR, pengguna dapat memulai Spark dan menggunakan cangkangnya tanpa akses administratif apa pun.

Komponen Spark

Ilustrasi berikut menggambarkan berbagai komponen Spark.

Apache Spark Core

Spark Core adalah mesin eksekusi umum yang mendasari untuk platform spark yang dibangun di atas semua fungsionalitas lainnya. Ini menyediakan komputasi Dalam Memori dan mereferensikan kumpulan data dalam sistem penyimpanan eksternal.

Spark SQL

Spark SQL adalah komponen di atas Spark Core yang memperkenalkan abstraksi data baru yang disebut SchemaRDD, yang memberikan dukungan untuk data terstruktur dan semi-terstruktur.

Spark Streaming

Spark Streaming memanfaatkan kemampuan penjadwalan cepat Spark Core untuk melakukan analisis streaming. Ini menyerap data dalam batch mini dan melakukan transformasi RDD (Set Data Terdistribusi Tangguh) pada batch mini data tersebut.

MLlib (Perpustakaan Pembelajaran Mesin)

MLlib adalah framework pembelajaran mesin terdistribusi di atas Spark karena arsitektur Spark berbasis memori terdistribusi. Ini, menurut tolok ukur, dilakukan oleh pengembang MLlib terhadap implementasi Alternating Least Squares (ALS). Spark MLlib sembilan kali lebih cepat dari versi berbasis disk HadoopApache Mahout (sebelum Mahout mendapatkan antarmuka Spark).

GraphX

GraphX ​​adalah kerangka kerja pemrosesan grafik terdistribusi di atas Spark. Ini menyediakan API untuk mengekspresikan komputasi grafik yang dapat memodelkan grafik yang ditentukan pengguna dengan menggunakan API abstraksi Pregel. Ini juga menyediakan runtime yang dioptimalkan untuk abstraksi ini.

Set Data Terdistribusi Tangguh

Set Data Terdistribusi Tangguh (RDD) adalah struktur data fundamental dari Spark. Ini adalah kumpulan objek terdistribusi yang tidak dapat diubah. Setiap set data di RDD dibagi menjadi partisi logis, yang dapat dihitung pada node cluster yang berbeda. RDD dapat berisi semua jenis objek Python, Java, atau Scala, termasuk kelas yang ditentukan pengguna.

Secara formal, RDD adalah kumpulan catatan yang hanya-baca dan dipartisi. RDD dapat dibuat melalui operasi deterministik pada data di penyimpanan stabil atau RDD lainnya. RDD adalah kumpulan elemen yang toleran terhadap kesalahan yang dapat dioperasikan secara paralel.

Ada dua cara untuk membuat RDD - parallelizing koleksi yang ada di program driver Anda, atau referencing a dataset dalam sistem penyimpanan eksternal, seperti sistem file bersama, HDFS, HBase, atau sumber data apa pun yang menawarkan Format Input Hadoop.

Spark menggunakan konsep RDD untuk mencapai operasi MapReduce yang lebih cepat dan efisien. Mari kita bahas dulu bagaimana operasi MapReduce berlangsung dan mengapa tidak begitu efisien.

Berbagi Data Lambat di MapReduce

MapReduce diadopsi secara luas untuk memproses dan menghasilkan kumpulan data besar dengan algoritme terdistribusi paralel pada kluster. Ini memungkinkan pengguna untuk menulis komputasi paralel, menggunakan sekumpulan operator tingkat tinggi, tanpa harus mengkhawatirkan distribusi kerja dan toleransi kesalahan.

Sayangnya, di sebagian besar kerangka kerja saat ini, satu-satunya cara untuk menggunakan kembali data di antara komputasi (Mis: antara dua tugas MapReduce) adalah menulisnya ke sistem penyimpanan stabil eksternal (Mis: HDFS). Meskipun kerangka kerja ini menyediakan banyak abstraksi untuk mengakses sumber daya komputasi cluster, pengguna masih menginginkan lebih.

Kedua Iterative dan Interactiveaplikasi membutuhkan berbagi data lebih cepat di seluruh pekerjaan paralel. Berbagi data lambat di MapReduce karenareplication, serialization, dan disk IO. Mengenai sistem penyimpanan, sebagian besar aplikasi Hadoop menghabiskan lebih dari 90% waktu untuk melakukan operasi baca-tulis HDFS.

Operasi Iteratif di MapReduce

Gunakan kembali hasil antara di beberapa komputasi dalam aplikasi multi-tahap. Ilustrasi berikut menjelaskan cara kerja framework saat ini, saat melakukan operasi berulang di MapReduce. Hal ini menimbulkan overhead yang besar karena replikasi data, I / O disk, dan serialisasi, yang membuat sistem menjadi lambat.

Operasi Interaktif di MapReduce

Pengguna menjalankan kueri ad-hoc pada subkumpulan data yang sama. Setiap kueri akan melakukan I / O disk pada penyimpanan stabil, yang dapat mendominasi waktu eksekusi aplikasi.

Ilustrasi berikut menjelaskan bagaimana kerangka kerja saat ini bekerja saat melakukan kueri interaktif di MapReduce.

Berbagi Data menggunakan Spark RDD

Berbagi data lambat di MapReduce karena replication, serialization, dan disk IO. Sebagian besar aplikasi Hadoop menghabiskan lebih dari 90% waktu untuk melakukan operasi baca-tulis HDFS.

Menyadari masalah ini, peneliti mengembangkan kerangka kerja khusus yang disebut Apache Spark. Ide kunci dari percikan adalahResilient Ddidistribusikan Datasets (RDD); itu mendukung komputasi pemrosesan dalam memori. Artinya, ia menyimpan status memori sebagai objek di seluruh tugas dan objek tersebut dapat dibagikan di antara tugas tersebut. Berbagi data dalam memori 10 hingga 100 kali lebih cepat daripada jaringan dan Disk.

Sekarang mari kita coba mencari tahu bagaimana operasi iteratif dan interaktif berlangsung di Spark RDD.

Operasi Iteratif pada Spark RDD

Ilustrasi yang diberikan di bawah ini menunjukkan operasi iteratif pada Spark RDD. Ini akan menyimpan hasil perantara dalam memori terdistribusi alih-alih penyimpanan Stabil (Disk) dan membuat sistem lebih cepat.

Note - Jika memori terdistribusi (RAM) cukup untuk menyimpan hasil antara (Status JOB), maka hasil tersebut akan disimpan di disk

Operasi Interaktif di Spark RDD

Ilustrasi ini menunjukkan operasi interaktif pada Spark RDD. Jika kueri berbeda dijalankan pada kumpulan data yang sama berulang kali, data khusus ini dapat disimpan dalam memori untuk waktu eksekusi yang lebih baik.

Secara default, setiap RDD yang diubah dapat dihitung ulang setiap kali Anda menjalankan tindakan padanya. Namun, Anda juga bisapersistsebuah RDD dalam memori, dalam hal ini Spark akan menyimpan elemen-elemen di sekitar klaster untuk akses yang jauh lebih cepat, saat Anda menanyakannya lagi. Ada juga dukungan untuk mempertahankan RDD pada disk, atau direplikasi di beberapa node.

Spark adalah sub-proyek Hadoop. Oleh karena itu, lebih baik menginstal Spark ke dalam sistem berbasis Linux. Langkah-langkah berikut menunjukkan cara menginstal Apache Spark.

Langkah 1: Memverifikasi Instalasi Java

Instalasi Java merupakan salah satu hal wajib dalam menginstal Spark. Coba perintah berikut untuk memverifikasi versi JAVA.

$java -version

Jika Java sudah terinstal di sistem Anda, Anda akan melihat respons berikut -

java version "1.7.0_71"
Java(TM) SE Runtime Environment (build 1.7.0_71-b13)
Java HotSpot(TM) Client VM (build 25.0-b02, mixed mode)

Jika Anda belum menginstal Java di sistem Anda, Instal Java sebelum melanjutkan ke langkah berikutnya.

Langkah2: Memverifikasi Instalasi Scala

Anda harus bahasa Scala untuk mengimplementasikan Spark. Jadi mari kita verifikasi instalasi Scala menggunakan perintah berikut.

$scala -version

Jika Scala sudah diinstal pada sistem Anda, Anda akan melihat respons berikut -

Scala code runner version 2.11.6 -- Copyright 2002-2013, LAMP/EPFL

Jika Anda belum menginstal Scala di sistem Anda, lanjutkan ke langkah berikutnya untuk penginstalan Scala.

Langkah3: Mengunduh Scala

Unduh Scala versi terbaru dengan mengunjungi tautan berikut Unduh Scala . Untuk tutorial ini, kami menggunakan versi scala-2.11.6. Setelah mengunduh, Anda akan menemukan file tar Scala di folder unduhan.

Step4: Menginstal Scala

Ikuti langkah-langkah yang diberikan di bawah ini untuk menginstal Scala.

Ekstrak file Scala tar

Ketik perintah berikut untuk mengekstrak file tar Scala.

$ tar xvf scala-2.11.6.tgz

Pindahkan file perangkat lunak Scala

Gunakan perintah berikut untuk memindahkan file perangkat lunak Scala, ke direktori masing-masing (/usr/local/scala).

$ su –
Password:
# cd /home/Hadoop/Downloads/
# mv scala-2.11.6 /usr/local/scala
# exit

Atur PATH untuk Scala

Gunakan perintah berikut untuk mengatur PATH untuk Scala.

$ export PATH = $PATH:/usr/local/scala/bin

Memverifikasi Instalasi Scala

Setelah instalasi, lebih baik untuk memverifikasinya. Gunakan perintah berikut untuk memverifikasi instalasi Scala.

$scala -version

Jika Scala sudah diinstal pada sistem Anda, Anda akan melihat respons berikut -

Scala code runner version 2.11.6 -- Copyright 2002-2013, LAMP/EPFL

Langkah5: Mengunduh Apache Spark

Unduh versi terbaru Spark dengan mengunjungi tautan berikut Unduh Spark . Untuk tutorial ini, kami menggunakanspark-1.3.1-bin-hadoop2.6Versi: kapan. Setelah mengunduhnya, Anda akan menemukan file tar Spark di folder unduhan.

Langkah6: Menginstal Spark

Ikuti langkah-langkah yang diberikan di bawah ini untuk menginstal Spark.

Mengekstrak Spark tar

Perintah berikut untuk mengekstrak file spark tar.

$ tar xvf spark-1.3.1-bin-hadoop2.6.tgz

Memindahkan file perangkat lunak Spark

Perintah berikut untuk memindahkan file perangkat lunak Spark ke direktori masing-masing (/usr/local/spark).

$ su –
Password:
# cd /home/Hadoop/Downloads/
# mv spark-1.3.1-bin-hadoop2.6 /usr/local/spark
# exit

Menyiapkan lingkungan untuk Spark

Tambahkan baris berikut ke ~/.bashrcmengajukan. Ini berarti menambahkan lokasi, di mana file perangkat lunak percikan berada ke variabel PATH.

export PATH = $PATH:/usr/local/spark/bin

Gunakan perintah berikut untuk mencari file ~ / .bashrc.

$ source ~/.bashrc

Step7: Memverifikasi Instalasi Spark

Tulis perintah berikut untuk membuka shell Spark.

$spark-shell

Jika percikan berhasil dipasang maka Anda akan menemukan output berikut.

Spark assembly has been built with Hive, including Datanucleus jars on classpath
Using Spark's default log4j profile: org/apache/spark/log4j-defaults.properties
15/06/04 15:25:22 INFO SecurityManager: Changing view acls to: hadoop
15/06/04 15:25:22 INFO SecurityManager: Changing modify acls to: hadoop
disabled; ui acls disabled; users with view permissions: Set(hadoop); users with modify permissions: Set(hadoop)
15/06/04 15:25:22 INFO HttpServer: Starting HTTP Server
15/06/04 15:25:23 INFO Utils: Successfully started service 'HTTP class server' on port 43292.
Welcome to
    ____             __
   / __/__ ___ _____/ /__
   _\ \/ _ \/ _ `/ __/ '_/
   /___/ .__/\_,_/_/ /_/\_\ version 1.4.0
      /_/
Using Scala version 2.10.4 (Java HotSpot(TM) 64-Bit Server VM, Java 1.7.0_71)
Type in expressions to have them evaluated.
Spark context available as sc
scala>

Spark memperkenalkan modul pemrograman untuk pemrosesan data terstruktur yang disebut Spark SQL. Ini menyediakan abstraksi pemrograman yang disebut DataFrame dan dapat bertindak sebagai mesin kueri SQL terdistribusi.

Fitur Spark SQL

Berikut ini adalah fitur-fitur Spark SQL -

  • Integrated- Gabungkan kueri SQL dengan program Spark dengan mulus. Spark SQL memungkinkan Anda membuat kueri data terstruktur sebagai kumpulan data terdistribusi (RDD) di Spark, dengan API terintegrasi di Python, Scala, dan Java. Integrasi yang erat ini memudahkan untuk menjalankan kueri SQL bersama dengan algoritme analitik yang kompleks.

  • Unified Data Access- Muat dan kueri data dari berbagai sumber. Schema-RDD menyediakan satu antarmuka untuk bekerja secara efisien dengan data terstruktur, termasuk tabel Apache Hive, file parket, dan file JSON.

  • Hive Compatibility- Jalankan kueri Hive yang tidak dimodifikasi di gudang yang ada. Spark SQL menggunakan kembali bagian depan Hive dan MetaStore, memberi Anda kompatibilitas penuh dengan data, kueri, dan UDF Hive yang ada. Cukup instal bersama Hive.

  • Standard Connectivity- Terhubung melalui JDBC atau ODBC. Spark SQL menyertakan mode server dengan konektivitas JDBC dan ODBC standar industri.

  • Scalability- Gunakan mesin yang sama untuk kueri interaktif dan panjang. Spark SQL memanfaatkan model RDD untuk mendukung toleransi kesalahan kueri menengah, membiarkannya menskalakan ke pekerjaan besar juga. Jangan khawatir tentang menggunakan mesin yang berbeda untuk data historis.

Spark SQL Architecture

Ilustrasi berikut menjelaskan arsitektur Spark SQL -

Arsitektur ini berisi tiga lapisan yaitu, API Bahasa, Skema RDD, dan Sumber Data.

  • Language API- Spark kompatibel dengan berbagai bahasa dan Spark SQL. Ini juga, didukung oleh bahasa-bahasa ini- API (python, scala, java, HiveQL).

  • Schema RDD- Spark Core dirancang dengan struktur data khusus yang disebut RDD. Secara umum, Spark SQL berfungsi pada skema, tabel, dan rekaman. Oleh karena itu, kita dapat menggunakan Schema RDD sebagai tabel sementara. Kita bisa menyebut Schema RDD ini sebagai Data Frame.

  • Data Sources- Biasanya sumber Data untuk spark-core adalah file teks, file Avro, dll. Namun, Sumber Data untuk Spark SQL berbeda. Yaitu file Parket, dokumen JSON, tabel HIVE, dan database Cassandra.

Kami akan membahas lebih lanjut tentang ini di bab-bab selanjutnya.

DataFrame adalah kumpulan data terdistribusi, yang diatur ke dalam kolom bernama. Secara konseptual, ini setara dengan tabel relasional dengan teknik pengoptimalan yang baik.

DataFrame dapat dibuat dari larik sumber yang berbeda seperti tabel Hive, file Data Terstruktur, database eksternal, atau RDD yang sudah ada. API ini dirancang untuk Big Data modern dan aplikasi ilmu data yang mengambil inspirasi darinyaDataFrame in R Programming dan Pandas in Python.

Fitur DataFrame

Berikut adalah sekumpulan beberapa fitur karakteristik DataFrame -

  • Kemampuan mengolah data dalam ukuran Kilobyte hingga Petabytes pada satu node cluster hingga cluster besar.

  • Mendukung berbagai format data (Avro, csv, elastic search, dan Cassandra) dan sistem penyimpanan (HDFS, tabel HIVE, mysql, dll).

  • Pengoptimalan canggih dan pembuatan kode melalui pengoptimal Spark SQL Catalyst (kerangka kerja transformasi pohon).

  • Dapat dengan mudah diintegrasikan dengan semua alat dan kerangka kerja Big Data melalui Spark-Core.

  • Menyediakan API untuk Pemrograman Python, Java, Scala, dan R.

SQLContext

SQLContext adalah kelas dan digunakan untuk menginisialisasi fungsi Spark SQL. Objek kelas (sc) SparkContext diperlukan untuk menginisialisasi objek kelas SQLContext.

Perintah berikut digunakan untuk menginisialisasi SparkContext melalui spark-shell.

$ spark-shell

Secara default, objek SparkContext diinisialisasi dengan nama sc saat percikan api dimulai.

Gunakan perintah berikut untuk membuat SQLContext.

scala> val sqlcontext = new org.apache.spark.sql.SQLContext(sc)

Contoh

Mari kita pertimbangkan contoh catatan karyawan dalam file JSON bernama employee.json. Gunakan perintah berikut untuk membuat DataFrame (df) dan membaca dokumen JSON bernamaemployee.json dengan konten berikut.

employee.json - Letakkan file ini di direktori tempat saat ini scala> pointer terletak.

{
   {"id" : "1201", "name" : "satish", "age" : "25"}
   {"id" : "1202", "name" : "krishna", "age" : "28"}
   {"id" : "1203", "name" : "amith", "age" : "39"}
   {"id" : "1204", "name" : "javed", "age" : "23"}
   {"id" : "1205", "name" : "prudvi", "age" : "23"}
}

Operasi DataFrame

DataFrame menyediakan bahasa khusus domain untuk manipulasi data terstruktur. Di sini, kami menyertakan beberapa contoh dasar pemrosesan data terstruktur menggunakan DataFrames.

Ikuti langkah-langkah yang diberikan di bawah ini untuk melakukan operasi DataFrame -

Baca Dokumen JSON

Pertama, kita harus membaca dokumen JSON. Berdasarkan ini, buat DataFrame bernama (dfs).

Gunakan perintah berikut untuk membaca dokumen JSON bernama employee.json. Data ditampilkan sebagai tabel dengan bidang - id, nama, dan usia.

scala> val dfs = sqlContext.read.json("employee.json")

Output - Nama bidang diambil secara otomatis dari employee.json.

dfs: org.apache.spark.sql.DataFrame = [age: string, id: string, name: string]

Tunjukkan Data

Jika Anda ingin melihat data di DataFrame, gunakan perintah berikut.

scala> dfs.show()

Output - Anda dapat melihat data karyawan dalam format tabel.

<console>:22, took 0.052610 s
+----+------+--------+
|age | id   |  name  |
+----+------+--------+
| 25 | 1201 | satish |
| 28 | 1202 | krishna|
| 39 | 1203 | amith  |
| 23 | 1204 | javed  |
| 23 | 1205 | prudvi |
+----+------+--------+

Gunakan Metode printSchema

Jika Anda ingin melihat Struktur (Skema) DataFrame, gunakan perintah berikut.

scala> dfs.printSchema()

Output

root
   |-- age: string (nullable = true)
   |-- id: string (nullable = true)
   |-- name: string (nullable = true)

Gunakan Pilih Metode

Gunakan perintah berikut untuk mengambil name-kolom di antara tiga kolom dari DataFrame.

scala> dfs.select("name").show()

Output - Anda dapat melihat nilai dari name kolom.

<console>:22, took 0.044023 s
+--------+
|  name  |
+--------+
| satish |
| krishna|
| amith  |
| javed  |
| prudvi |
+--------+

Gunakan Filter Usia

Gunakan perintah berikut untuk menemukan karyawan yang usianya lebih dari 23 (usia> 23).

scala> dfs.filter(dfs("age") > 23).show()

Output

<console>:22, took 0.078670 s
+----+------+--------+
|age | id   | name   |
+----+------+--------+
| 25 | 1201 | satish |
| 28 | 1202 | krishna|
| 39 | 1203 | amith  |
+----+------+--------+

Gunakan Metode groupBy

Gunakan perintah berikut untuk menghitung jumlah karyawan yang sebaya.

scala> dfs.groupBy("age").count().show()

Output - dua karyawan berusia 23 tahun.

<console>:22, took 5.196091 s
+----+-----+
|age |count|
+----+-----+
| 23 |  2  |
| 25 |  1  |
| 28 |  1  |
| 39 |  1  |
+----+-----+

Menjalankan Kueri SQL Secara Terprogram

SQLContext memungkinkan aplikasi untuk menjalankan kueri SQL secara terprogram saat menjalankan fungsi SQL dan mengembalikan hasilnya sebagai DataFrame.

Umumnya, di latar belakang, SparkSQL mendukung dua metode berbeda untuk mengonversi RDD yang ada menjadi DataFrames -

Sr Tidak Metode & Deskripsi
1 Menyimpulkan Skema menggunakan Refleksi

Metode ini menggunakan refleksi untuk menghasilkan skema RDD yang berisi jenis objek tertentu.

2 Menentukan Skema Secara Terprogram

Metode kedua untuk membuat DataFrame adalah melalui antarmuka program yang memungkinkan Anda membuat skema dan kemudian menerapkannya ke RDD yang ada.

Antarmuka DataFrame memungkinkan Sumber Data yang berbeda untuk bekerja di Spark SQL. Ini adalah tabel sementara dan dapat dioperasikan sebagai RDD biasa. Mendaftarkan DataFrame sebagai tabel memungkinkan Anda menjalankan kueri SQL atas datanya.

Dalam bab ini, kami akan menjelaskan metode umum untuk memuat dan menyimpan data menggunakan Sumber Data Spark yang berbeda. Setelah itu, kami akan membahas secara rinci opsi spesifik yang tersedia untuk sumber data bawaan.

Ada berbagai jenis sumber data yang tersedia di SparkSQL, beberapa di antaranya tercantum di bawah ini -

Sr Tidak Sumber data
1 Kumpulan Data JSON

Spark SQL dapat secara otomatis menangkap skema set data JSON dan memuatnya sebagai DataFrame.

2 Tabel Sarang

Hive dibundel dengan pustaka Spark sebagai HiveContext, yang diwarisi dari SQLContext.

3 File Parket

Parket adalah format kolom, didukung oleh banyak sistem pemrosesan data.