我想创建一个示例DataFrame,但以下代码无效:
df = spark.createDataFrame(["10","11","13"], ("age"))
## ValueError
## ...
## ValueError: Could not parse datatype: age
预期结果是:
age
10
11
13
答案 0 :(得分:4)
以下代码无效
对于单个元素,您需要一个类型为
的模式spark.createDataFrame(["10","11","13"], "string").toDF("age")
或DataType
:
from pyspark.sql.types import StringType
spark.createDataFrame(["10","11","13"], StringType()).toDF("age")
使用名称元素应该是元组和模式作为序列:
spark.createDataFrame([("10", ), ("11", ), ("13", )], ["age"])
答案 1 :(得分:3)
好吧..在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|
+---+---+---+
这样,也无需定义架构。希望这是最简单的方法
答案 2 :(得分:3)
对于熊猫+ pyspark用户,如果您已经在集群中安装了熊猫,则可以简单地做到这一点:
# create pandas dataframe
df = pd.DataFrame({'col1':[1,2,3], 'col2':['a','b','c']})
# convert to spark dataframe
df = spark.createDataFrame(df)
本地Spark设置
import findspark
findspark.init()
import pyspark
spark = (pyspark
.sql
.SparkSession
.builder
.master("local")
.getOrCreate())
答案 3 :(得分:0)
我只使用spark.read在python中创建一个数据帧,如documentation中所述,将数据保存为json,例如加载它:
df = spark.read.json("examples/src/main/resources/people.json")
希望这有帮助!
答案 4 :(得分:0)
from pyspark.sql import SparkSession
spark = SparkSession.builder.getOrCreate()
df = spark.createDataFrame([{"a": "x", "b": "y", "c": "3"}])
输出:(无需定义架构)
+---+---+---+
| a | b | c |
+---+---+---+
| x| y| 3|
+---+---+---+
答案 5 :(得分:0)
您也可以尝试类似的方法-
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
答案 6 :(得分:0)
创建DataFrame的方法有多种,PySpark Create DataFrame是您在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)
除了这些,您还可以在pyspark create dataframe上找到几个示例
答案 7 :(得分:0)
请参阅我的 farsante 库以使用假数据创建 DataFrame:
import farsante
df = farsante.quick_pyspark_df(['first_name', 'last_name'], 7)
df.show()
+----------+---------+
|first_name|last_name|
+----------+---------+
| Tommy| Hess|
| Arthur| Melendez|
| Clemente| Blair|
| Wesley| Conrad|
| Willis| Dunlap|
| Bruna| Sellers|
| Tonda| Schwartz|
+----------+---------+
以下是在创建 PySpark DataFrame 时显式指定架构的方法:
df = spark.createDataFrame(
[(10,), (11,), (13,)],
StructType([StructField("some_int", IntegerType(), True)]))
df.show()
+--------+
|some_int|
+--------+
| 10|
| 11|
| 13|
+--------+