データソース
データソースの基本クラス。
このクラスは、読み取りや書き込みが可能なカスタム データ ソースを表します。 データソースは、それぞれデータの読み取りと書き込みを行うリーダーとライターを作成するメソッドを提供します。 データソースを読み取り可能または書き込み可能(あるいはその両方)にするには、サブクラスでメソッドreader()またはwriter()の少なくとも 1 つを実装する必要があります。
このインターフェースを実装すると、 spark.read.format(...).load()を使用してデータソースを読み込み、 df.write.format(...).save()を使用してデータを保存できるようになります。
構文
from pyspark.sql.datasource import DataSource
class MyDataSource(DataSource):
@classmethod
def name(cls):
return "my_data_source"
パラメーター
パラメーター | Type | 説明 |
|---|---|---|
| 辞書 | このデータ ソースのオプションを表す、大文字と小文字を区別しない辞書。 |
方法
手法 | 説明 |
|---|---|
このデータ ソースの形式名を表す文字列を返します。 デフォルトでは、クラス名を返します。オーバーライドしてカスタマイズされた短い名前を提供します。 | |
データソースのスキーマを | |
データを読み取るための | |
データを書き込むための | |
| ストリーミング シンクにデータを書き込むための |
| ストリーミング データを読み取るための |
ストリーミング データを読み取るための |
例
カスタム読み取り可能なデータ ソースを定義して登録します。
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()
StructTypeスキーマを使用してデータソースを定義します。
from pyspark.sql.types import StructType, StructField, IntegerType, StringType
class MyDataSource(DataSource):
def schema(self):
return StructType().add("a", "int").add("b", "string")