Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Kelas dasar untuk sumber data.
Kelas ini mewakili sumber data kustom yang memungkinkan membaca dari dan/atau menulis ke dalamnya. Sumber data menyediakan metode untuk membuat pembaca dan penulis untuk membaca dan menulis data. Setidaknya salah satu metode reader() atau writer() harus diimplementasikan oleh subkelas apa pun untuk membuat sumber data dapat dibaca atau dapat ditulis (atau keduanya).
Setelah menerapkan antarmuka ini, Anda dapat memuat sumber data menggunakan spark.read.format(...).load() dan menyimpan data menggunakan df.write.format(...).save().
Untuk informasi selengkapnya, lihat Sumber data kustom PySpark.
Sintaksis
from pyspark.sql.datasource import DataSource
class MyDataSource(DataSource):
@classmethod
def name(cls):
return "my_data_source"
Parameter-parameternya
| Parameter | Tipe | Deskripsi |
|---|---|---|
options |
kamus | Kamus yang tidak peka huruf besar/kecil yang mewakili opsi untuk sumber data ini. |
Metode
| Metode | Deskripsi |
|---|---|
name() |
Mengembalikan string yang mewakili nama format sumber data ini. Secara default, mengembalikan nama kelas. Ambil alih untuk memberikan nama pendek yang disesuaikan. |
schema() |
Mengembalikan skema sumber data sebagai StructType string atau DDL. Jika tidak diimplementasikan dan tidak ada skema yang disediakan oleh pengguna, pengecualian akan dilemparkan. |
reader(schema) |
Mengembalikan instans DataSourceReader untuk membaca data. Diperlukan untuk sumber data yang dapat dibaca. |
writer(schema, overwrite) |
Mengembalikan instans DataSourceWriter untuk menulis data. Diperlukan untuk sumber data yang dapat ditulis. |
streamWriter(schema, overwrite) |
Mengembalikan instans DataSourceStreamWriter untuk menulis data ke dalam sink streaming. Diperlukan untuk sumber data streaming yang dapat ditulis. |
simpleStreamReader(schema) |
Mengembalikan instans SimpleDataSourceStreamReader untuk membaca data streaming. Digunakan hanya ketika streamReader() tidak diimplementasikan. |
streamReader(schema) |
Mengembalikan instans DataSourceStreamReader untuk membaca data streaming. Lebih diprioritaskan daripada simpleStreamReader(). |
Examples
Tentukan dan daftarkan sumber data kustom yang dapat dibaca:
from pyspark.sql.datasource import DataSource, DataSourceReader, InputPartition
class MyDataSource(DataSource):
@classmethod
def name(cls):
return "my_data_source"
def schema(self):
return "a INT, b STRING"
def reader(self, schema):
return MyDataSourceReader(schema)
class MyDataSourceReader(DataSourceReader):
def read(self, partition):
yield (1, "hello")
yield (2, "world")
spark.dataSource.register(MyDataSource)
df = spark.read.format("my_data_source").load()
df.show()
Tentukan sumber data dengan StructType skema:
from pyspark.sql.types import StructType, StructField, IntegerType, StringType
class MyDataSource(DataSource):
def schema(self):
return StructType().add("a", "int").add("b", "string")