aboutsummaryrefslogtreecommitdiff
path: root/python
diff options
context:
space:
mode:
Diffstat (limited to 'python')
-rw-r--r--python/pyspark/sql/dataframe.py2
-rw-r--r--python/pyspark/sql/readwriter.py22
2 files changed, 16 insertions, 8 deletions
diff --git a/python/pyspark/sql/dataframe.py b/python/pyspark/sql/dataframe.py
index 55cad8238e..936487519a 100644
--- a/python/pyspark/sql/dataframe.py
+++ b/python/pyspark/sql/dataframe.py
@@ -163,7 +163,7 @@ class DataFrame(object):
Optionally overwriting any existing data.
"""
- self._jdf.insertInto(tableName, overwrite)
+ self.write.insertInto(tableName, overwrite)
@since(1.3)
def saveAsTable(self, tableName, source=None, mode="error", **options):
diff --git a/python/pyspark/sql/readwriter.py b/python/pyspark/sql/readwriter.py
index 02b3aab2b1..b6fd413bec 100644
--- a/python/pyspark/sql/readwriter.py
+++ b/python/pyspark/sql/readwriter.py
@@ -226,17 +226,25 @@ class DataFrameWriter(object):
else:
jwrite.save(path)
+ def insertInto(self, tableName, overwrite=False):
+ """
+ Inserts the content of the :class:`DataFrame` to the specified table.
+ It requires that the schema of the class:`DataFrame` is the same as the
+ schema of the table.
+
+ Optionally overwriting any existing data.
+ """
+ self._jwrite.mode("overwrite" if overwrite else "append").insertInto(tableName)
+
@since(1.4)
def saveAsTable(self, name, format=None, mode="error", **options):
"""
- Saves the contents of this :class:`DataFrame` to a data source as a table.
-
- The data source is specified by the ``source`` and a set of ``options``.
- If ``source`` is not specified, the default data source configured by
- ``spark.sql.sources.default`` will be used.
+ Saves the content of the :class:`DataFrame` as the specified table.
- Additionally, mode is used to specify the behavior of the saveAsTable operation when
- table already exists in the data source. There are four modes:
+ In the case the table already exists, behavior of this function depends on the
+ save mode, specified by the `mode` function (default to throwing an exception).
+ When `mode` is `Overwrite`, the schema of the [[DataFrame]] does not need to be
+ the same as that of the existing table.
* `append`: Append contents of this :class:`DataFrame` to existing data.
* `overwrite`: Overwrite existing data.