Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/apache-spark/6.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
Numpy PySpark:无法从列表创建数据帧_Numpy_Apache Spark_Spark Dataframe - Fatal编程技术网

Numpy PySpark:无法从列表创建数据帧

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

嗨,我有一个元组列表,其中包含一个字符串和一个numpy float 64值。我想把它改成spark dataframe。但是我有错误。列表和错误如下所示

这是我的代码:

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()