class_docstr: Abstract base class for feature processor data sources.
  
  Provides a skeleton for customization requiring the overriding of the method to read data from
  data source and return the Spark DataFrame.
class_docstr_tok: ["Abstract","base","class","for","feature","processor","data","sources",".","Provides","a","skeleton","for","customization","requiring","the","overriding","of","the","method","to","read","data","from","data","source","and","return","the","Spark","DataFrame","."]
docstr: Read data from data source and convert the data to Spark DataFrame.
  
  Args:
      spark (SparkSession): The Spark session to read the data.
      params (Optional[Dict[str, Union[str, Dict]]]): Parameters provided to the
          feature_processor decorator.
  Returns:
      DataFrame: The Spark DataFrame as an abstraction on the data source.
docstr_tok: ["Read","data","from","data","source","and","convert","the","data","to","Spark","DataFrame",".","Args",":","spark","(","SparkSession",")",":","The","Spark","session","to","read","the","data",".","params","(","Optional","[","Dict","[","str",",","Union","[","str",",","Dict","]","]","]",")",":","Parameters","provided","to","the","feature_processor","decorator",".","Returns",":","DataFrame",":","The","Spark","DataFrame","as","an","abstraction","on","the","data","source","."]
code: def read_data(
      self,
      spark: SparkSession,
      params: Optional[Dict[str, Union[str, Dict]]] = None,
  ) -> DataFrame:
      """Read data from data source and convert the data to Spark DataFrame.
  
      Args:
          spark (SparkSession): The Spark session to read the data.
          params (Optional[Dict[str, Union[str, Dict]]]): Parameters provided to the
              feature_processor decorator.
      Returns:
          DataFrame: The Spark DataFrame as an abstraction on the data source.
      """
  
file_path: sagemaker-python-sdk/src/sagemaker/feature_store/feature_processor/_data_source.py
imports: from __future__ import absolute_import
  from typing import Optional, Dict, Union, TypeVar, Generic
  from abc import ABC, abstractmethod
  from pyspark.sql import DataFrame, SparkSession
  import attr
label_desc: Use image node_id 1 for calling the PySparkDataSource obj's underlying member method code with example usage: obj.read_data(spark, params) without return types