Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Veri kaynakları için temel sınıf.
Bu sınıf, bu veri kaynağından okuma ve/veya yazma olanağı sağlayan özel bir veri kaynağını temsil eder. Veri kaynağı, sırasıyla verileri okumak ve yazmak için okuyucu ve yazar oluşturma yöntemleri sağlar. Veri kaynağını okunabilir veya yazılabilir (veya her ikisini birden) yapmak için yöntemlerden reader() en az biri veya writer() herhangi bir alt sınıf tarafından uygulanması gerekir.
Bu arabirimi uyguladıktan sonra kullanarak veri kaynağınızı spark.read.format(...).load() yükleyebilir ve kullanarak df.write.format(...).save()verileri kaydedebilirsiniz.
Daha fazla bilgi için bkz. PySpark özel veri kaynakları.
Sözdizimi
from pyspark.sql.datasource import DataSource
class MyDataSource(DataSource):
@classmethod
def name(cls):
return "my_data_source"
Parametreler
| Parametre | Türü | Açıklama |
|---|---|---|
options |
Dict | Bu veri kaynağı seçeneklerini temsil eden büyük/küçük harfe duyarlı olmayan bir sözlük. |
Methods
| Yöntem | Açıklama |
|---|---|
name() |
Bu veri kaynağının biçim adını temsil eden bir dize döndürür. Varsayılan olarak, sınıf adını döndürür. Özelleştirilmiş bir kısa ad sağlamak için geçersiz kılın. |
schema() |
Veri kaynağının şemasını veya StructType DDL dizesi olarak döndürür. Uygulanmazsa ve kullanıcı tarafından hiçbir şema sağlanmazsa, bir özel durum oluşturulur. |
reader(schema) |
Verileri okumak için bir DataSourceReader örnek döndürür. Okunabilir veri kaynakları için gereklidir. |
writer(schema, overwrite) |
Veri yazmak için bir DataSourceWriter örnek döndürür. Yazılabilir veri kaynakları için gereklidir. |
streamWriter(schema, overwrite) |
DataSourceStreamWriter Akış havuzuna veri yazmak için bir örnek döndürür. Yazılabilir akış veri kaynakları için gereklidir. |
simpleStreamReader(schema) |
Akış verilerini okumak için bir SimpleDataSourceStreamReader örnek döndürür. Yalnızca uygulanmadığında streamReader() kullanılır. |
streamReader(schema) |
Akış verilerini okumak için bir DataSourceStreamReader örnek döndürür. üzerinde öncelik simpleStreamReader()alır. |
Örnekler
Özel okunabilir bir veri kaynağı tanımlayın ve kaydedin:
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()
Şema ile StructType bir veri kaynağı tanımlayın:
from pyspark.sql.types import StructType, StructField, IntegerType, StringType
class MyDataSource(DataSource):
def schema(self):
return StructType().add("a", "int").add("b", "string")