pyspark.sql.SparkSession.createDataFrame 的用法。用法:
SparkSession.createDataFrame(data, schema=None, samplingRatio=None, verifySchema=True)从
RDD、列表或pandas.DataFrame创建DataFrame。当
schema是列名列表时,将从data推断出每列的类型。当
schema为None时,它将尝试从data推断架构(列名和类型),这应该是Row、namedtuple或dict的 RDD。当
schema为pyspark.sql.types.DataType或数据类型字符串时,必须与真实数据匹配,否则运行时会抛出异常。如果给定的模式不是pyspark.sql.types.StructType,它将被包装到pyspark.sql.types.StructType作为其唯一字段,并且字段名称将为 “value”。每条记录也将被包装成一个元组,以后可以转换为行。如果需要模式推断,
samplingRatio用于确定用于模式推断的行的比率。如果samplingRatio是None,将使用第一行。2.0.0 版中的新函数。
在 2.1.0 版中更改:添加了验证架构。
- data:
RDD或可迭代 任何类型的 SQL 数据表示形式的 RDD(
Row、tuple、int、boolean等)、或list或pandas.DataFrame。- schema:
pyspark.sql.types.DataType,字符串或列表,可选 pyspark.sql.types.DataType或数据类型字符串或列名列表,默认为无。数据类型字符串格式等于pyspark.sql.types.DataType.simpleString,除了顶级结构类型可以省略struct<>和原子类型使用typeName()作为它们的格式,例如使用byte而不是tinyint为pyspark.sql.types.ByteType。我们也可以使用int作为pyspark.sql.types.IntegerType的简称。- samplingRatio:浮点数,可选
用于推断的行的样本比率
- verifySchema:布尔型,可选
根据架构验证每一行的数据类型。默认启用。
- data:
参数:
返回:
注意:
spark.sql.execution.arrow.pyspark.enabled=True 的使用是实验性的。
例子:
>>> l = [('Alice', 1)] >>> spark.createDataFrame(l).collect() [Row(_1='Alice', _2=1)] >>> spark.createDataFrame(l, ['name', 'age']).collect() [Row(name='Alice', age=1)]>>> d = [{'name': 'Alice', 'age': 1}] >>> spark.createDataFrame(d).collect() [Row(age=1, name='Alice')]>>> rdd = sc.parallelize(l) >>> spark.createDataFrame(rdd).collect() [Row(_1='Alice', _2=1)] >>> df = spark.createDataFrame(rdd, ['name', 'age']) >>> df.collect() [Row(name='Alice', age=1)]>>> from pyspark.sql import Row >>> Person = Row('name', 'age') >>> person = rdd.map(lambda r: Person(*r)) >>> df2 = spark.createDataFrame(person) >>> df2.collect() [Row(name='Alice', age=1)]>>> from pyspark.sql.types import * >>> schema = StructType([ ... StructField("name", StringType(), True), ... StructField("age", IntegerType(), True)]) >>> df3 = spark.createDataFrame(rdd, schema) >>> df3.collect() [Row(name='Alice', age=1)]>>> spark.createDataFrame(df.toPandas()).collect() [Row(name='Alice', age=1)] >>> spark.createDataFrame(pandas.DataFrame([[1, 2]])).collect() [Row(0=1, 1=2)]>>> spark.createDataFrame(rdd, "a: string, b: int").collect() [Row(a='Alice', b=1)] >>> rdd = rdd.map(lambda row: row[1]) >>> spark.createDataFrame(rdd, "int").collect() [Row(value=1)] >>> spark.createDataFrame(rdd, "boolean").collect() Traceback (most recent call last): ... Py4JJavaError: ...
相关用法
- Python pyspark SparkSession.table用法及代码示例
- Python pyspark SparkSession.builder.config用法及代码示例
- Python pyspark SparkSession.getActiveSession用法及代码示例
- Python pyspark SparkSession.range用法及代码示例
- Python pyspark SparkSession.sql用法及代码示例
- Python pyspark SparkSession.builder.getOrCreate用法及代码示例
- Python pyspark SparkSession用法及代码示例
- Python pyspark SparkConf用法及代码示例
- Python pyspark SparkContext.addFile用法及代码示例
- Python pyspark SparkContext.union用法及代码示例
- Python pyspark SparkContext.runJob用法及代码示例
- Python pyspark SparkContext.parallelize用法及代码示例
- Python pyspark SparkContext用法及代码示例
- Python pyspark SparkContext.range用法及代码示例
- Python pyspark SparkContext.setJobGroup用法及代码示例
- Python pyspark SparkContext.pickleFile用法及代码示例
- Python pyspark SparkContext.applicationId用法及代码示例
- Python pyspark SparkContext.wholeTextFiles用法及代码示例
- Python pyspark SparkContext.textFile用法及代码示例
- Python pyspark SparseVector.parse用法及代码示例
- Python pyspark SparseVector.dot用法及代码示例
- Python pyspark SparseVector.squared_distance用法及代码示例
- Python pyspark SparseVector.norm用法及代码示例
- Python pyspark Series.asof用法及代码示例
- Python pyspark Series.to_frame用法及代码示例
注:本文由纯净天空筛选整理自spark.apache.org大神的英文原创作品 pyspark.sql.SparkSession.createDataFrame。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。
