Numpy PySpark:无法从列表创建数据帧
嗨,我有一个元组列表,其中包含一个字符串和一个numpy float 64值。我想把它改成spark dataframe。但是我有错误。列表和错误如下所示 这是我的代码:Numpy PySpark:无法从列表创建数据帧,numpy,apache-spark,spark-dataframe,Numpy,Apache Spark,Spark Dataframe,嗨,我有一个元组列表,其中包含一个字符串和一个numpy float 64值。我想把它改成spark dataframe。但是我有错误。列表和错误如下所示 这是我的代码: schema = StructType([StructField("key", StringType(), True), StructField("value", DoubleType(), True)]) coef_df = spark.createDataFrame(coef_list, schema) 正如@use
schema = StructType([StructField("key", StringType(), True), StructField("value", DoubleType(), True)])
coef_df = spark.createDataFrame(coef_list, schema)
正如@user6910411所建议的,Spark SQL不支持NumPy类型(目前) 这里有一个稍微简单一点的解决方案(也包括评论)
+-----------------+-------+
|键值|
+-----------------+-------+
|100912战略识别号|-2.1412|
|10交换日-1.2412|
+-----------------+-------+
正如@user6910411所建议的,Spark SQL不支持NumPy类型(目前)
这里有一个稍微简单一点的解决方案(也包括评论)
+-----------------+-------+
|键值|
+-----------------+-------+
|100912战略识别号|-2.1412|
|10交换日-1.2412|
+-----------------+-------+
import numpy as np
data = [
(np.unicode('100912strategy_id'), np.float64(-2.1412)),
(np.unicode('10exchange_ud'), np.float64(-1.2412))]
df = (sc.parallelize(data)
.map(lambda x: (str(x[0]), float(x[1])))
.toDF(["key","value"]))
df.show()