0
)データフレームdfには13個の値がカンマで区切られています。私は、labelPointを含むdataFrameをdf2に入れたいと思います。ファー値はラベル、12はフィーチャーです。私はsplitとselectメソッドを使用して、13の値を持つ文字列を13の値の配列に分割します。 mapメソッドを使用すると、labeledPointを作成できます。私は私が見つけるstackerrorで見たときLabeledPointのRDDをDataFrameに変換するエラー(
:仕事によるステージ障害のために中止さ: 私はorg.apache.spark.SparkException
df2 = df.select(split(df[0], ',')).map(lambda x: LabeledPoint(float(x[0]),x[-12:])).toDF()
DATAFRAME
にRDDを変換するtoDF()メソッドを使用するとエラーが来ますIndexError:タプルのインデックスが範囲外です。
試験を行うために、私が実行:
display(df.select(split(df[0], ',')))
iは各列の配列で私13の値を得る:
["2001.0","0.884123733793","0.610454259079","0.600498416968","0.474669212493","0.247232680947","0.357306088914","0.344136412234","0.339641227335","0.600858840135","0.425704689024","0.60491501652","0.419193351817"]
任意のアイデア?
どのようにCSVをDataframeにロードしましたか?私の意見では、エラーは分割(df [0]、 '、')である可能性があります。 1つの列しか使用していないようです。 –
'x [-12:]'がエラーを出しました。実際に 'split'の後に13個の値があることを確認してください。 – ShuaiYuan
私の投稿を再編集します。私はこのコマンドの表示をテストします(df.select(split(df [0]、 '、')))私はポストで言ったように、正しく私の13の値を取得します... –