aboutsummaryrefslogtreecommitdiff
path: root/python/pyspark/sql/functions.py
diff options
context:
space:
mode:
Diffstat (limited to 'python/pyspark/sql/functions.py')
-rw-r--r--python/pyspark/sql/functions.py20
1 files changed, 20 insertions, 0 deletions
diff --git a/python/pyspark/sql/functions.py b/python/pyspark/sql/functions.py
index dee3d536be..f5d959ef98 100644
--- a/python/pyspark/sql/functions.py
+++ b/python/pyspark/sql/functions.py
@@ -1498,6 +1498,26 @@ def translate(srcCol, matching, replace):
# ---------------------- Collection functions ------------------------------
+@ignore_unicode_prefix
+@since(2.0)
+def create_map(*cols):
+ """Creates a new map column.
+
+ :param cols: list of column names (string) or list of :class:`Column` expressions that grouped
+ as key-value pairs, e.g. (key1, value1, key2, value2, ...).
+
+ >>> df.select(create_map('name', 'age').alias("map")).collect()
+ [Row(map={u'Alice': 2}), Row(map={u'Bob': 5})]
+ >>> df.select(create_map([df.name, df.age]).alias("map")).collect()
+ [Row(map={u'Alice': 2}), Row(map={u'Bob': 5})]
+ """
+ sc = SparkContext._active_spark_context
+ if len(cols) == 1 and isinstance(cols[0], (list, set)):
+ cols = cols[0]
+ jc = sc._jvm.functions.map(_to_seq(sc, cols, _to_java_column))
+ return Column(jc)
+
+
@since(1.4)
def array(*cols):
"""Creates a new array column.