class DataFrameReader extends sql.api.DataFrameReader[Dataset]
Interface used to load a Dataset from external storage systems (e.g. file systems,
key-value stores, etc). Use SparkSession.read
to access this.
- Annotations
- @Stable()
- Source
- DataFrameReader.scala
- Since
1.4.0
- Alphabetic
- By Inheritance
- DataFrameReader
- DataFrameReader
- AnyRef
- Any
- Hide All
- Show All
- Public
- Protected
Value Members
- final def !=(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
- final def ##: Int
- Definition Classes
- AnyRef → Any
- final def ==(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
- final def asInstanceOf[T0]: T0
- Definition Classes
- Any
- def assertNoSpecifiedSchema(operation: String): Unit
A convenient function for schema validation in APIs.
A convenient function for schema validation in APIs.
- Attributes
- protected
- Definition Classes
- DataFrameReader
- def clone(): AnyRef
- Attributes
- protected[lang]
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.CloneNotSupportedException]) @IntrinsicCandidate() @native()
- def csv(paths: String*): DataFrame
Loads CSV files and returns the result as a
DataFrame
.Loads CSV files and returns the result as a
DataFrame
.This function will go through the input once to determine the input schema if
inferSchema
is enabled. To avoid going through the entire data once, disableinferSchema
option or specify the schema explicitly usingschema
.You can find the CSV-specific options for reading CSV files in <a href="https://spark.apache.org/docs/latest/sql-data-sources-csv.html#data-source-option"> Data Source Option in the version you use.
- Definition Classes
- DataFrameReader → DataFrameReader
- Annotations
- @varargs()
- def csv(csvDataset: Dataset[String]): DataFrame
Loads an
Dataset[String]
storing CSV rows and returns the result as aDataFrame
.Loads an
Dataset[String]
storing CSV rows and returns the result as aDataFrame
.If the schema is not specified using
schema
function andinferSchema
option is enabled, this function goes through the input once to determine the input schema.If the schema is not specified using
schema
function andinferSchema
option is disabled, it determines the columns as string types and it reads only the first line to determine the names and the number of fields.If the enforceSchema is set to
false
, only the CSV header in the first line is checked to conform specified or inferred schema.- csvDataset
input Dataset with one CSV row per record
- Definition Classes
- DataFrameReader → DataFrameReader
- def csv(path: String): DataFrame
Loads a CSV file and returns the result as a
DataFrame
.Loads a CSV file and returns the result as a
DataFrame
. See the documentation on the other overloadedcsv()
method for more details.- Definition Classes
- DataFrameReader → DataFrameReader
- final def eq(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
- def equals(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef → Any
- var extraOptions: CaseInsensitiveMap[String]
- Attributes
- protected
- Definition Classes
- DataFrameReader
- def format(source: String): DataFrameReader.this.type
Specifies the input data source format.
Specifies the input data source format.
- Definition Classes
- DataFrameReader → DataFrameReader
- final def getClass(): Class[_ <: AnyRef]
- Definition Classes
- AnyRef → Any
- Annotations
- @IntrinsicCandidate() @native()
- def hashCode(): Int
- Definition Classes
- AnyRef → Any
- Annotations
- @IntrinsicCandidate() @native()
- final def isInstanceOf[T0]: Boolean
- Definition Classes
- Any
- def jdbc(url: String, table: String, predicates: Array[String], connectionProperties: Properties): DataFrame
Construct a
DataFrame
representing the database table accessible via JDBC URL url named table using connection properties.Construct a
DataFrame
representing the database table accessible via JDBC URL url named table using connection properties. Thepredicates
parameter gives a list expressions suitable for inclusion in WHERE clauses; each one defines one partition of theDataFrame
.Don't create too many partitions in parallel on a large cluster; otherwise Spark might crash your external database systems.
You can find the JDBC-specific option and parameter documentation for reading tables via JDBC in <a href="https://spark.apache.org/docs/latest/sql-data-sources-jdbc.html#data-source-option"> Data Source Option in the version you use.
- table
Name of the table in the external database.
- predicates
Condition in the where clause for each partition.
- connectionProperties
JDBC database connection arguments, a list of arbitrary string tag/value. Normally at least a "user" and "password" property should be included. "fetchsize" can be used to control the number of rows per fetch.
- Definition Classes
- DataFrameReader → DataFrameReader
- def jdbc(url: String, table: String, columnName: String, lowerBound: Long, upperBound: Long, numPartitions: Int, connectionProperties: Properties): DataFrame
Construct a
DataFrame
representing the database table accessible via JDBC URL url named table.Construct a
DataFrame
representing the database table accessible via JDBC URL url named table. Partitions of the table will be retrieved in parallel based on the parameters passed to this function.Don't create too many partitions in parallel on a large cluster; otherwise Spark might crash your external database systems.
You can find the JDBC-specific option and parameter documentation for reading tables via JDBC in <a href="https://spark.apache.org/docs/latest/sql-data-sources-jdbc.html#data-source-option"> Data Source Option in the version you use.
- table
Name of the table in the external database.
- columnName
Alias of
partitionColumn
option. Refer topartitionColumn
in <a href="https://spark.apache.org/docs/latest/sql-data-sources-jdbc.html#data-source-option"> Data Source Option in the version you use.- connectionProperties
JDBC database connection arguments, a list of arbitrary string tag/value. Normally at least a "user" and "password" property should be included. "fetchsize" can be used to control the number of rows per fetch and "queryTimeout" can be used to wait for a Statement object to execute to the given number of seconds.
- Definition Classes
- DataFrameReader → DataFrameReader
- def jdbc(url: String, table: String, properties: Properties): DataFrame
Construct a
DataFrame
representing the database table accessible via JDBC URL url named table and connection properties.Construct a
DataFrame
representing the database table accessible via JDBC URL url named table and connection properties.You can find the JDBC-specific option and parameter documentation for reading tables via JDBC in <a href="https://spark.apache.org/docs/latest/sql-data-sources-jdbc.html#data-source-option"> Data Source Option in the version you use.
- Definition Classes
- DataFrameReader → DataFrameReader
- def json(jsonDataset: Dataset[String]): DataFrame
Loads a
Dataset[String]
storing JSON objects (JSON Lines text format or newline-delimited JSON) and returns the result as aDataFrame
.Loads a
Dataset[String]
storing JSON objects (JSON Lines text format or newline-delimited JSON) and returns the result as aDataFrame
.Unless the schema is specified using
schema
function, this function goes through the input once to determine the input schema.- jsonDataset
input Dataset with one JSON object per record
- Definition Classes
- DataFrameReader → DataFrameReader
- def json(paths: String*): DataFrame
Loads JSON files and returns the results as a
DataFrame
.Loads JSON files and returns the results as a
DataFrame
.JSON Lines (newline-delimited JSON) is supported by default. For JSON (one record per file), set the
multiLine
option to true.This function goes through the input once to determine the input schema. If you know the schema in advance, use the version that specifies the schema to avoid the extra scan.
You can find the JSON-specific options for reading JSON files in <a href="https://spark.apache.org/docs/latest/sql-data-sources-json.html#data-source-option"> Data Source Option in the version you use.
- Definition Classes
- DataFrameReader → DataFrameReader
- Annotations
- @varargs()
- def json(path: String): DataFrame
Loads a JSON file and returns the results as a
DataFrame
.Loads a JSON file and returns the results as a
DataFrame
.See the documentation on the overloaded
json()
method with varargs for more details.- Definition Classes
- DataFrameReader → DataFrameReader
- def load(paths: String*): DataFrame
Loads input in as a
DataFrame
, for data sources that support multiple paths.Loads input in as a
DataFrame
, for data sources that support multiple paths. Only works if the source is a HadoopFsRelationProvider.- Definition Classes
- DataFrameReader → DataFrameReader
- Annotations
- @varargs()
- def load(path: String): DataFrame
Loads input in as a
DataFrame
, for data sources that require a path (e.g.Loads input in as a
DataFrame
, for data sources that require a path (e.g. data backed by a local or distributed file system).- Definition Classes
- DataFrameReader → DataFrameReader
- def load(): DataFrame
Loads input in as a
DataFrame
, for data sources that don't require a path (e.g.Loads input in as a
DataFrame
, for data sources that don't require a path (e.g. external key-value stores).- Definition Classes
- DataFrameReader → DataFrameReader
- final def ne(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
- final def notify(): Unit
- Definition Classes
- AnyRef
- Annotations
- @IntrinsicCandidate() @native()
- final def notifyAll(): Unit
- Definition Classes
- AnyRef
- Annotations
- @IntrinsicCandidate() @native()
- def option(key: String, value: Double): DataFrameReader.this.type
Adds an input option for the underlying data source.
Adds an input option for the underlying data source.
All options are maintained in a case-insensitive way in terms of key names. If a new option has the same key case-insensitively, it will override the existing option.
- Definition Classes
- DataFrameReader → DataFrameReader
- def option(key: String, value: Long): DataFrameReader.this.type
Adds an input option for the underlying data source.
Adds an input option for the underlying data source.
All options are maintained in a case-insensitive way in terms of key names. If a new option has the same key case-insensitively, it will override the existing option.
- Definition Classes
- DataFrameReader → DataFrameReader
- def option(key: String, value: Boolean): DataFrameReader.this.type
Adds an input option for the underlying data source.
Adds an input option for the underlying data source.
All options are maintained in a case-insensitive way in terms of key names. If a new option has the same key case-insensitively, it will override the existing option.
- Definition Classes
- DataFrameReader → DataFrameReader
- def option(key: String, value: String): DataFrameReader.this.type
Adds an input option for the underlying data source.
Adds an input option for the underlying data source.
All options are maintained in a case-insensitive way in terms of key names. If a new option has the same key case-insensitively, it will override the existing option.
- Definition Classes
- DataFrameReader → DataFrameReader
- def options(options: Map[String, String]): DataFrameReader.this.type
Adds input options for the underlying data source.
Adds input options for the underlying data source.
All options are maintained in a case-insensitive way in terms of key names. If a new option has the same key case-insensitively, it will override the existing option.
- Definition Classes
- DataFrameReader → DataFrameReader
- def options(options: Map[String, String]): DataFrameReader.this.type
(Scala-specific) Adds input options for the underlying data source.
(Scala-specific) Adds input options for the underlying data source.
All options are maintained in a case-insensitive way in terms of key names. If a new option has the same key case-insensitively, it will override the existing option.
- Definition Classes
- DataFrameReader → DataFrameReader
- def orc(paths: String*): DataFrame
Loads ORC files and returns the result as a
DataFrame
.Loads ORC files and returns the result as a
DataFrame
.ORC-specific option(s) for reading ORC files can be found in Data Source Option in the version you use.
- paths
input paths
- Definition Classes
- DataFrameReader → DataFrameReader
- Annotations
- @varargs()
- def orc(path: String): DataFrame
Loads an ORC file and returns the result as a
DataFrame
.Loads an ORC file and returns the result as a
DataFrame
.- path
input path
- Definition Classes
- DataFrameReader → DataFrameReader
- def parquet(paths: String*): DataFrame
Loads a Parquet file, returning the result as a
DataFrame
.Loads a Parquet file, returning the result as a
DataFrame
.Parquet-specific option(s) for reading Parquet files can be found in Data Source Option in the version you use.
- Definition Classes
- DataFrameReader → DataFrameReader
- Annotations
- @varargs()
- def parquet(path: String): DataFrame
Loads a Parquet file, returning the result as a
DataFrame
.Loads a Parquet file, returning the result as a
DataFrame
. See the documentation on the other overloadedparquet()
method for more details.- Definition Classes
- DataFrameReader → DataFrameReader
- def schema(schemaString: String): DataFrameReader.this.type
Specifies the schema by using the input DDL-formatted string.
Specifies the schema by using the input DDL-formatted string. Some data sources (e.g. JSON) can infer the input schema automatically from data. By specifying the schema here, the underlying data source can skip the schema inference step, and thus speed up data loading.
spark.read.schema("a INT, b STRING, c DOUBLE").csv("test.csv")
- Definition Classes
- DataFrameReader → DataFrameReader
- def schema(schema: StructType): DataFrameReader.this.type
Specifies the input schema.
Specifies the input schema. Some data sources (e.g. JSON) can infer the input schema automatically from data. By specifying the schema here, the underlying data source can skip the schema inference step, and thus speed up data loading.
- Definition Classes
- DataFrameReader → DataFrameReader
- var source: String
- Attributes
- protected
- Definition Classes
- DataFrameReader
- final def synchronized[T0](arg0: => T0): T0
- Definition Classes
- AnyRef
- def table(tableName: String): DataFrame
Returns the specified table/view as a
DataFrame
.Returns the specified table/view as a
DataFrame
. If it's a table, it must support batch reading and the returned DataFrame is the batch scan query plan of this table. If it's a view, the returned DataFrame is simply the query plan of the view, which can either be a batch or streaming query plan.- tableName
is either a qualified or unqualified name that designates a table or view. If a database is specified, it identifies the table/view from the database. Otherwise, it first attempts to find a temporary view with the given name and then match the table/view from the current database. Note that, the global temporary view database is also valid here.
- Definition Classes
- DataFrameReader → DataFrameReader
- def text(paths: String*): DataFrame
Loads text files and returns a
DataFrame
whose schema starts with a string column named "value", and followed by partitioned columns if there are any.Loads text files and returns a
DataFrame
whose schema starts with a string column named "value", and followed by partitioned columns if there are any. The text files must be encoded as UTF-8.By default, each line in the text files is a new row in the resulting DataFrame. For example:
// Scala: spark.read.text("/path/to/spark/README.md") // Java: spark.read().text("/path/to/spark/README.md")
You can find the text-specific options for reading text files in <a href="https://spark.apache.org/docs/latest/sql-data-sources-text.html#data-source-option"> Data Source Option in the version you use.
- paths
input paths
- Definition Classes
- DataFrameReader → DataFrameReader
- Annotations
- @varargs()
- def text(path: String): DataFrame
Loads text files and returns a
DataFrame
whose schema starts with a string column named "value", and followed by partitioned columns if there are any.Loads text files and returns a
DataFrame
whose schema starts with a string column named "value", and followed by partitioned columns if there are any. See the documentation on the other overloadedtext()
method for more details.- Definition Classes
- DataFrameReader → DataFrameReader
- def textFile(paths: String*): Dataset[String]
Loads text files and returns a Dataset of String.
Loads text files and returns a Dataset of String. The underlying schema of the Dataset contains a single string column named "value". The text files must be encoded as UTF-8.
If the directory structure of the text files contains partitioning information, those are ignored in the resulting Dataset. To include partitioning information as columns, use
text
.By default, each line in the text files is a new row in the resulting DataFrame. For example:
// Scala: spark.read.textFile("/path/to/spark/README.md") // Java: spark.read().textFile("/path/to/spark/README.md")
You can set the text-specific options as specified in
DataFrameReader.text
.- paths
input path
- Definition Classes
- DataFrameReader → DataFrameReader
- Annotations
- @varargs()
- def textFile(path: String): Dataset[String]
Loads text files and returns a Dataset of String.
Loads text files and returns a Dataset of String. See the documentation on the other overloaded
textFile()
method for more details.- Definition Classes
- DataFrameReader → DataFrameReader
- def toString(): String
- Definition Classes
- AnyRef → Any
- var userSpecifiedSchema: Option[StructType]
- Attributes
- protected
- Definition Classes
- DataFrameReader
- def validateJsonSchema(): Unit
- Attributes
- protected
- Definition Classes
- DataFrameReader → DataFrameReader
- def validateSingleVariantColumn(): Unit
Ensure that the
singleVariantColumn
option cannot be used if there is also a user specified schema.Ensure that the
singleVariantColumn
option cannot be used if there is also a user specified schema.- Attributes
- protected
- Definition Classes
- DataFrameReader → DataFrameReader
- def validateXmlSchema(): Unit
- Attributes
- protected
- Definition Classes
- DataFrameReader → DataFrameReader
- final def wait(arg0: Long, arg1: Int): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException])
- final def wait(arg0: Long): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException]) @native()
- final def wait(): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException])
- def xml(xmlDataset: Dataset[String]): DataFrame
Loads an
Dataset[String]
storing XML object and returns the result as aDataFrame
.Loads an
Dataset[String]
storing XML object and returns the result as aDataFrame
.If the schema is not specified using
schema
function andinferSchema
option is enabled, this function goes through the input once to determine the input schema.- xmlDataset
input Dataset with one XML object per record
- Definition Classes
- DataFrameReader → DataFrameReader
- def xml(paths: String*): DataFrame
Loads XML files and returns the result as a
DataFrame
.Loads XML files and returns the result as a
DataFrame
.This function will go through the input once to determine the input schema if
inferSchema
is enabled. To avoid going through the entire data once, disableinferSchema
option or specify the schema explicitly usingschema
.You can find the XML-specific options for reading XML files in <a href="https://spark.apache.org/docs/latest/sql-data-sources-xml.html#data-source-option"> Data Source Option in the version you use.
- Definition Classes
- DataFrameReader → DataFrameReader
- Annotations
- @varargs()
- def xml(path: String): DataFrame
Loads a XML file and returns the result as a
DataFrame
.Loads a XML file and returns the result as a
DataFrame
. See the documentation on the other overloadedxml()
method for more details.- Definition Classes
- DataFrameReader → DataFrameReader
Deprecated Value Members
- def finalize(): Unit
- Attributes
- protected[lang]
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.Throwable]) @Deprecated
- Deprecated
(Since version 9)
- def json(jsonRDD: RDD[String]): DataFrame
Loads an
RDD[String]
storing JSON objects (JSON Lines text format or newline-delimited JSON) and returns the result as aDataFrame
.Loads an
RDD[String]
storing JSON objects (JSON Lines text format or newline-delimited JSON) and returns the result as aDataFrame
.Unless the schema is specified using
schema
function, this function goes through the input once to determine the input schema.- jsonRDD
input RDD with one JSON object per record
- Annotations
- @deprecated
- Deprecated
(Since version 2.2.0) Use json(Dataset[String]) instead.
- Since
1.4.0
- def json(jsonRDD: JavaRDD[String]): DataFrame
Loads a
JavaRDD[String]
storing JSON objects (JSON Lines text format or newline-delimited JSON) and returns the result as aDataFrame
.Loads a
JavaRDD[String]
storing JSON objects (JSON Lines text format or newline-delimited JSON) and returns the result as aDataFrame
.Unless the schema is specified using
schema
function, this function goes through the input once to determine the input schema.- jsonRDD
input RDD with one JSON object per record
- Annotations
- @deprecated
- Deprecated
(Since version 2.2.0) Use json(Dataset[String]) instead.
- Since
1.4.0