5

私はローカルでスパークをいじり始め、この奇妙な問題を見つけました

    1) pip install pyspark==2.3.1
    2) ピスパーク>

    パンダを pd としてインポート
    pyspark.sql.functions から pandas_udf、PandasUDFType、udf をインポート
    df = pd.DataFrame({'x': [1,2,3], 'y':[1.0,2.0,3.0]})
    sp_df = spark.createDataFrame(df)

    @pandas_udf('long', PandasUDFType.SCALAR)
    def pandas_plus_one(v):
        v + 1 を返す

    sp_df.withColumn('v2', pandas_plus_one(sp_df.x)).show()

ここからこの例を取るhttps://databricks.com/blog/2017/10/30/introducing-vectorized-udfs-for-pyspark.html

このエラーが発生し続ける理由は何ですか?

py4j.protocol.Py4JJavaError: o108.showString の呼び出し中にエラーが発生しました。
: org.apache.spark.SparkException: ステージの失敗によりジョブが中止されました: ステージ 3.0 のタスク 0 が 1 回失敗しました。最近の失敗: ステージ 3.0 でタスク 0.0 が失われました (TID 8、localhost、executor ドライバー): org.apache.spark .SparkException: Python ワーカーが予期せず終了しました (クラッシュしました)
    org.apache.spark.api.python.BasePythonRunner$ReaderIterator$$anonfun$1.applyOrElse(PythonRunner.scala:333) で
    org.apache.spark.api.python.BasePythonRunner$ReaderIterator$$anonfun$1.applyOrElse(PythonRunner.scala:322) で
    scala.runtime.AbstractPartialFunction.apply(AbstractPartialFunction.scala:36) で
    org.apache.spark.sql.execution.python.ArrowPythonRunner$$anon$1.read(ArrowPythonRunner.scala:177) で
    org.apache.spark.sql.execution.python.ArrowPythonRunner$$anon$1.read(ArrowPythonRunner.scala:121) で
    org.apache.spark.api.python.BasePythonRunner$ReaderIterator.hasNext (PythonRunner.scala:252) で
    org.apache.spark.InterruptibleIterator.hasNext(InterruptibleIterator.scala:37) で
    org.apache.spark.sql.execution.python.ArrowEvalPythonExec$$anon$2 で。(ArrowEvalPythonExec.scala:90)
    org.apache.spark.sql.execution.python.ArrowEvalPythonExec.evaluate (ArrowEvalPythonExec.scala:88) で
    org.apache.spark.sql.execution.python.EvalPythonExec$$anonfun$doExecute$1.apply(EvalPythonExec.scala:131) で
    org.apache.spark.sql.execution.python.EvalPythonExec$$anonfun$doExecute$1.apply(EvalPythonExec.scala:93) で
    org.apache.spark.rdd.RDD$$anonfun$mapPartitions$1$$anonfun$apply$23.apply(RDD.scala:800) で
    org.apache.spark.rdd.RDD$$anonfun$mapPartitions$1$$anonfun$apply$23.apply(RDD.scala:800) で
    org.apache.spark.rdd.MapPartitionsRDD.compute (MapPartitionsRDD.scala:38) で
    org.apache.spark.rdd.RDD.computeOrReadCheckpoint (RDD.scala:324) で
    org.apache.spark.rdd.RDD.iterator(RDD.scala:288) で
    org.apache.spark.rdd.MapPartitionsRDD.compute (MapPartitionsRDD.scala:38) で
    org.apache.spark.rdd.RDD.computeOrReadCheckpoint (RDD.scala:324) で
    org.apache.spark.rdd.RDD.iterator(RDD.scala:288) で
    org.apache.spark.rdd.MapPartitionsRDD.compute (MapPartitionsRDD.scala:38) で
    org.apache.spark.rdd.RDD.computeOrReadCheckpoint (RDD.scala:324) で
    org.apache.spark.rdd.RDD.iterator(RDD.scala:288) で
    org.apache.spark.rdd.MapPartitionsRDD.compute (MapPartitionsRDD.scala:38) で
    org.apache.spark.rdd.RDD.computeOrReadCheckpoint (RDD.scala:324) で
    org.apache.spark.rdd.RDD.iterator(RDD.scala:288) で
    org.apache.spark.scheduler.ResultTask.runTask (ResultTask.scala:87) で
    org.apache.spark.scheduler.Task.run (Task.scala:109) で
    org.apache.spark.executor.Executor$TaskRunner.run(Executor.scala:345) で
    java.util.concurrent.ThreadPoolExecutor.runWorker (ThreadPoolExecutor.java:1142) で
    java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) で
    java.lang.Thread.run(Thread.java:745) で
原因: java.io.EOFException
    java.io.DataInputStream.readInt(DataInputStream.java:392) で
    org.apache.spark.sql.execution.python.ArrowPythonRunner$$anon$1.read(ArrowPythonRunner.scala:158) で
    ... 27以上
4

2 に答える 2