String 如何将字符串值插入到空的数据框中?

String 如何将字符串值插入到空的数据框中?,string,dataframe,pyspark,apache-spark-sql,String,Dataframe,Pyspark,Apache Spark Sql,我想创建一个空的spark数据框并向其中添加数据,当我尝试执行以下操作时,我遇到了一个错误:- cars = 1 type= 'Sedan' bike= 2 type2 = 'Racer' count =100 result=spark.createDataFrame([('cars', cars),('car_type', type),('bike', bike),('bike_type', type2), ('count',count)],['Info','Record']) empty =

我想创建一个空的spark数据框并向其中添加数据,当我尝试执行以下操作时,我遇到了一个错误:-

cars = 1
type= 'Sedan'
bike= 2
type2 = 'Racer'
count =100
result=spark.createDataFrame([('cars', cars),('car_type', type),('bike', bike),('bike_type', type2), ('count',count)],['Info','Record'])
empty = sqlContext.createDataFrame(sc.emptyRDD(), result.schema)
df = empty.unionAll(result).show()
display(df)
错误:-

TypeError: field Observation: Can not merge type <class 'pyspark.sql.types.LongType'> and <class 'pyspark.sql.types.StringType'>

一个列只能有一种类型。如果不能保证最好使用传递的模式创建数据帧

您可以创建这样的数据帧

schema = StructType([StructField('Info', StringType(), True),
                     StructField('Record', StringType(), True)])

data = [('cars', 1), ('car_type', 'Sedan'), ('bike', 2), ('bike_type', 'Racer'), ('count', 100)]

df = sc.createDataFrame(data, schema)

df.show()

+---------+------+
|     Info|Record|
+---------+------+
|     cars|     1|
| car_type| Sedan|
|     bike|     2|
|bike_type| Racer|
|    count|   100|
+---------+------+

列只能有一种类型,在本例中为字符串。使用
汽车='1'
自行车='2'
,等等。哦,是的,我收到了谢谢:0
schema = StructType([StructField('Info', StringType(), True),
                     StructField('Record', StringType(), True)])

data = [('cars', 1), ('car_type', 'Sedan'), ('bike', 2), ('bike_type', 'Racer'), ('count', 100)]

df = sc.createDataFrame(data, schema)

df.show()

+---------+------+
|     Info|Record|
+---------+------+
|     cars|     1|
| car_type| Sedan|
|     bike|     2|
|bike_type| Racer|
|    count|   100|
+---------+------+