フードの下で使用される
SparkSession.createDataFrame
は、RDD
/list
DataType
のスキーマが提供されていない限り、/tuple
/list
/dict
*またはpandas.DataFrame
です。
:***あなたが直接
SparkSession.createDataFrame
を使用してスキーマを提供する必要がありますスカラーのリストから
DataFrame
を作成するには
from pyspark.sql import Row
row = Row("val") # Or some other column name
myFloatRdd.map(row).toDF()
:
myFloatRdd.map(lambda x: (x,)).toDF()
またはさらに良い:このような何かを試してみてください
from pyspark.sql.types import FloatType
df = spark.createDataFrame([1.0, 2.0, 3.0], FloatType())
df.show()
## +-----+
## |value|
## +-----+
## | 1.0|
## | 2.0|
## | 3.0|
## +-----+
しかし、単純な範囲のためにそれを使用する方がよいでしょうSparkSession.range
:
from pyspark.sql.functions import col
spark.range(1, 4).select(col("id").cast("double"))
*サポートされなくなりました。
** Spark SQLはまた、__dict__
を公開しているPythonオブジェクトのスキーマの推論を限定的にサポートしています。
***サポートされているのは、Spark 2.0以降のみです。
私はスパークする初心者です。 'myFloatRdd.map(lambda x:(x、))。toDF()'がこの問題を解決する方法を教えてください。 'map(lambda x:(x、))'はRDDオブジェクトを行のリストに変換するだけですか? – kasa
@kasa 'tuples'( - >' struct')の推論マッピングがあります。スカラーの場合はnoです。 – zero323