私はDataFrameをpysparkするのが初めてです。多分私はこれを正しく理解していないでしょう。RDDに落とさずにpyspark DataFrameをLabeledPointに変換します
は、私がLabeledPointにこれを変換したい場合は、私はマップ機能を使用してRDDにドロップダウンする必要があります。私は、データフレーム
a = sqlContext.createDataFrame([[(2,3,4)],[(1,2,3)]],['things'])
を持っていることを言います
from pyspark.mllib.regression import LabeledPoint
def convert(x):
z = [float(y) for y in x]
return LabeledPoint(z[0], z[1:])
rdd = a.map(lambda x: convert(x['things']))
rdd.take(2)
df=rdd.toDF()
DataFrame selectステートメントと以下のようなUDFを併用できないのはなぜですか?
org.apache.spark.SparkException: Job aborted due to stage failure: Task 6 in stage 33.0 failed 1 times, most recent failure: Lost task 6.0 in stage 33.0 (TID 101, localhost): net.razorvine.pickle.PickleException: expected zero arguments for construction of ClassDict (for pyspark.mllib.linalg.DenseVector)
ありがとうございます。私はUDFとUDTがどう関係しているかについてはあまりよく分かりません。私は参照のための適切なサイトに私を指すことができますか? – user2773013
[ユーザー定義関数](https://spark.apache.org/docs/latest/api/python/pyspark.sql.html?highlight=udf#pyspark.sql.functions.udf)は、DataFrame列で機能します。現在、pysparkには[User Defined Type](https://spark.apache.org/docs/latest/api/python/_modules/pyspark/sql/types.html)の正式サポートはありません。 – ShuaiYuan