2017-03-16 1 views
0

Hallo Ich habe eine Liste von Tupeln, die eine Zeichenfolge und einen numpy float 64 Wert enthalten. Ich würde es gerne zu Spark Dataframe ändern. Aber ich bekomme Fehler. Die Liste und der Fehler sind unten aufgeführt.PySpark: Kann kein Datenframe aus der Liste erstellen

enter image description here

Dies ist mein Code:

schema = StructType([StructField("key", StringType(), True), StructField("value", DoubleType(), True)]) 

coef_df = spark.createDataFrame(coef_list, schema) 

Antwort

2

Wie @ user6910411 schlägt Spark SQL (noch) nicht NumPy Typen unterstützen

Hier ist eine etwas einfachere Lösung für Sie (unter Einbeziehung der Kommentar als gut)

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() 
+-----------------+-------+ 
|    key| value| 
+-----------------+-------+ 
|100912strategy_id|-2.1412| 
| 10exchange_ud|-1.2412| 
+-----------------+-------+ 
Verwandte Themen