Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/drupal/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在Python中创建示例单列Spark数据帧?_Python_Apache Spark_Pyspark_Apache Spark Sql - Fatal编程技术网

如何在Python中创建示例单列Spark数据帧?

如何在Python中创建示例单列Spark数据帧?,python,apache-spark,pyspark,apache-spark-sql,Python,Apache Spark,Pyspark,Apache Spark Sql,我想创建一个示例单列数据帧,但以下代码不起作用: df=spark.createDataFrame([“10”、“11”、“13”],(“年龄”)) ##数值误差 ## ... ##ValueError:无法分析数据类型:年龄 预期结果: 年龄 10 11 13 我使用just spark.read在python中创建了一个数据帧,如中所述,例如,将数据另存为json并按如下方式加载: df = spark.read.json("examples/src/main/resources

我想创建一个示例单列数据帧,但以下代码不起作用:

df=spark.createDataFrame([“10”、“11”、“13”],(“年龄”))
##数值误差
## ...
##ValueError:无法分析数据类型:年龄
预期结果:

年龄
10
11
13

我使用just spark.read在python中创建了一个数据帧,如中所述,例如,将数据另存为json并按如下方式加载:

df = spark.read.json("examples/src/main/resources/people.json")
以下代码不起作用


对于单个元素,您需要一个模式作为类型

spark.createDataFrame(["10","11","13"], "string").toDF("age")
数据类型

from pyspark.sql.types import StringType

spark.createDataFrame(["10","11","13"], StringType()).toDF("age")
With name元素应为元组,模式为序列:

spark.createDataFrame([("10", ), ("11", ), ("13",  )], ["age"])

嗯。。有一些非常简单的方法可以在PySpark中创建示例数据帧

>>> df = sc.parallelize([[1,2,3], [2,3,4]]).toDF()
>>> df.show()
+---+---+---+
| _1| _2| _3|
+---+---+---+
|  1|  2|  3|
|  2|  3|  4|
+---+---+---+
使用某些列名创建

>>> df1 = sc.parallelize([[1,2,3], [2,3,4]]).toDF(("a", "b", "c"))
>>> df1.show()
+---+---+---+
|  a|  b|  c|
+---+---+---+
|  1|  2|  3|
|  2|  3|  4|
+---+---+---+
这样,就不需要定义模式了。希望这是最简单的方法

from pyspark.sql import SparkSession

spark = SparkSession.builder.getOrCreate()
df = spark.createDataFrame([{"a": "x", "b": "y", "c": "3"}])
输出:(无需定义架构)


对于pandas+pyspark用户,如果您已经在集群中安装了pandas,您只需执行以下操作:

# create pandas dataframe
df = pd.DataFrame({'col1':[1,2,3], 'col2':['a','b','c']})

# convert to spark dataframe
df = spark.createDataFrame(df)
本地火花设置


你也可以试试这样的东西-

from pyspark.sql import SQLContext
sqlContext = SQLContext(sc) # sc is the spark context
sample = sqlContext.createDataFrame(
    [
        ('qwe', 23), # enter your data here
        ('rty',34),
        ('yui',56),
        ],
    ['abc', 'def'] # the row header/column labels should be entered here

创建数据帧有几种方法,这是您在使用PySpark时学习的第一步

我假设您已经有了数据、列和RDD

1) df = rdd.toDF()
2) df = rdd.toDF(columns) //Assigns column names
3) df = spark.createDataFrame(rdd).toDF(*columns)
4) df = spark.createDataFrame(data).toDF(*columns)
5) df = spark.createDataFrame(rowData,columns)
除此之外,您还可以在

查看我的库中找到几个示例,以使用假数据创建数据帧:

import-farsante
df=farsante.quick_pyspark_df(['first_name','last_name',]7)
df.show()
以下是创建PySpark数据帧时如何显式指定架构:

df=spark.createDataFrame(
[(10,), (11,), (13,)],
StructType([StructField(“some_int”,IntegerType(),True)])
df.show()

“对于单个元素,您需要一个模式作为类型”这正是我所缺少的,谢谢
from pyspark.sql import SQLContext
sqlContext = SQLContext(sc) # sc is the spark context
sample = sqlContext.createDataFrame(
    [
        ('qwe', 23), # enter your data here
        ('rty',34),
        ('yui',56),
        ],
    ['abc', 'def'] # the row header/column labels should be entered here
1) df = rdd.toDF()
2) df = rdd.toDF(columns) //Assigns column names
3) df = spark.createDataFrame(rdd).toDF(*columns)
4) df = spark.createDataFrame(data).toDF(*columns)
5) df = spark.createDataFrame(rowData,columns)
+----------+---------+
|first_name|last_name|
+----------+---------+
|     Tommy|     Hess|
|    Arthur| Melendez|
|  Clemente|    Blair|
|    Wesley|   Conrad|
|    Willis|   Dunlap|
|     Bruna|  Sellers|
|     Tonda| Schwartz|
+----------+---------+
+--------+
|some_int|
+--------+
|      10|
|      11|
|      13|
+--------+