Dataframe 无法使用customSchema将RDD转换为DF

Dataframe 无法使用customSchema将RDD转换为DF,dataframe,pyspark,rdd,Dataframe,Pyspark,Rdd,我无法使用自定义模式将rdd转换为数据帧。详情如下,代码如下: df = spark.read.option("header","true").schema(customSchema).csv("C:/sparkCourse/filetext/part-00000-646a1d36-8f75-4eee-b937-135e933ede7f-c000.csv") 当我使用customSchema时,它可以工作,如下所示: >>> customSchema = StructType

我无法使用自定义模式将rdd转换为数据帧。详情如下,代码如下:

df = spark.read.option("header","true").schema(customSchema).csv("C:/sparkCourse/filetext/part-00000-646a1d36-8f75-4eee-b937-135e933ede7f-c000.csv")
当我使用customSchema时,它可以工作,如下所示:

>>> customSchema = StructType([
... StructField("EID",StringType()),\
... StructField("Name",StringType()),\
... StructField("email",StringType()),\
... StructField("Salary",StringType()),\
... StructField("PlaceName",StringType()),\
... StructField("County",StringType()),\
... StructField("City",StringType()),\
... StructField("Gender",StringType())\
... ])
>>>

>>> myDF = spark.createDataFrame(emp1,customSchema)
>>> myDF1 = myDF.withColumn("EID",col("EID").cast("integer")).withColumn("Salary",col("Salary").cast("integer"))
>>> myDF1.show()

+------+--------------------+--------------------+------+--------------+--------------------+--------------+------+
|   EID|                Name|               email|Salary|     PlaceName|              County|          City|Gender|
+------+--------------------+--------------------+------+--------------+--------------------+--------------+------+
|111135|    Darell T Grizzle|darell.grizzle@ya...|196416|   Tallahassee|                Leon|   Tallahassee|     M|
|111159|     Deanna Z Nestor|deanna.nestor@gma...|184760|   Collegeport|           Matagorda|   Collegeport|     F|
|111160|   Marion G Mcqueary|marion.mcqueary@y...|189506|     Flensburg|            Morrison|     Flensburg|     M|
|111175|  Monserrate D Bentz|monserrate.bentz@...|184412|South Freeport|          Cumberland|South Freeport|     F|
|111214|     Jamie E Spataro|jamie.spataro@gma...|189926|       Gilliam|              Saline|       Gilliam|     M|
|111228| Ernest J Woolbright|ernest.woolbright...|194929|        Tacoma|              Tacoma|        Tacoma|     M|
|111243| Ivette F Manzanares|ivette.manzanares...|189834|     Lemasters|            Franklin|     Lemasters|     F|
|111274|    Erwin F Bouchard|erwin.bouchard@ao...|184390| Bessemer City|              Gaston| Bessemer City|     M|
|111293|      Walton E Garza|walton.garza@comc...|198280|       Suncook|           Merrimack|       Suncook|     M|
|111316|      Jospeh E Holle|jospeh.holle@gmai...|181878|   Wagon Mound|                Mora|   Wagon Mound|     M|
|111327|      Angelo S Fizer|angelo.fizer@ibm.com|199654|    Zelienople|              Butler|    Zelienople|     M|
|111350|       Numbers H Luo| numbers.luo@aol.com|198095|           Eva|              Benton|           Eva|     M|
|111359|        Jim Z Jewett|jim.jewett@gmail.com|198956| Hatchechubbee|             Russell| Hatchechubbee|     M|
|111396|  Edward M Pentecost|edward.pentecost@...|194979|       Dayhoit|              Harlan|       Dayhoit|     M|
|111403|      Henry F Lawyer|henry.lawyer@appl...|198515|    Washington|District of Columbia|    Washington|     M|
|111442|      Manual X Meany|manual.meany@yaho...|196608|        Hunter|                Cass|        Hunter|     M|
|111446|      Ethan V Folmar|ethan.folmar@yaho...|188581|     Ridgeview|               Boone|     Ridgeview|     M|
|111449|     Tanja J Sparrow|tanja.sparrow@yah...|195398|    Tower City|                Cass|    Tower City|     F|
|111478|Leigha K Courtema...|leigha.courtemanc...|195306|    Sun Valley|              Blaine|    Sun Valley|     F|
|111514|        Rob F Struck|rob.struck@gmail.com|198750|    Centertown|                Cole|    Centertown|     M|
+------+--------------------+--------------------+------+--------------+--------------------+--------------+------+
only showing top 20 rows
>>> customSchema = StructType([
... StructField("EID",IntegerType()),\
... StructField("Name",StringType()),\
... StructField("email",StringType()),\
... StructField("Salary",IntegerType()),\
... StructField("PlaceName",StringType()),\
... StructField("County",StringType()),\
... StructField("City",StringType()),\
... StructField("Gender",StringType())\
... ])
但当我使用以下模式(我直接将EID和Salary定义为IntegerType)时,它失败了:

>>> customSchema = StructType([
... StructField("EID",StringType()),\
... StructField("Name",StringType()),\
... StructField("email",StringType()),\
... StructField("Salary",StringType()),\
... StructField("PlaceName",StringType()),\
... StructField("County",StringType()),\
... StructField("City",StringType()),\
... StructField("Gender",StringType())\
... ])
>>>

>>> myDF = spark.createDataFrame(emp1,customSchema)
>>> myDF1 = myDF.withColumn("EID",col("EID").cast("integer")).withColumn("Salary",col("Salary").cast("integer"))
>>> myDF1.show()

+------+--------------------+--------------------+------+--------------+--------------------+--------------+------+
|   EID|                Name|               email|Salary|     PlaceName|              County|          City|Gender|
+------+--------------------+--------------------+------+--------------+--------------------+--------------+------+
|111135|    Darell T Grizzle|darell.grizzle@ya...|196416|   Tallahassee|                Leon|   Tallahassee|     M|
|111159|     Deanna Z Nestor|deanna.nestor@gma...|184760|   Collegeport|           Matagorda|   Collegeport|     F|
|111160|   Marion G Mcqueary|marion.mcqueary@y...|189506|     Flensburg|            Morrison|     Flensburg|     M|
|111175|  Monserrate D Bentz|monserrate.bentz@...|184412|South Freeport|          Cumberland|South Freeport|     F|
|111214|     Jamie E Spataro|jamie.spataro@gma...|189926|       Gilliam|              Saline|       Gilliam|     M|
|111228| Ernest J Woolbright|ernest.woolbright...|194929|        Tacoma|              Tacoma|        Tacoma|     M|
|111243| Ivette F Manzanares|ivette.manzanares...|189834|     Lemasters|            Franklin|     Lemasters|     F|
|111274|    Erwin F Bouchard|erwin.bouchard@ao...|184390| Bessemer City|              Gaston| Bessemer City|     M|
|111293|      Walton E Garza|walton.garza@comc...|198280|       Suncook|           Merrimack|       Suncook|     M|
|111316|      Jospeh E Holle|jospeh.holle@gmai...|181878|   Wagon Mound|                Mora|   Wagon Mound|     M|
|111327|      Angelo S Fizer|angelo.fizer@ibm.com|199654|    Zelienople|              Butler|    Zelienople|     M|
|111350|       Numbers H Luo| numbers.luo@aol.com|198095|           Eva|              Benton|           Eva|     M|
|111359|        Jim Z Jewett|jim.jewett@gmail.com|198956| Hatchechubbee|             Russell| Hatchechubbee|     M|
|111396|  Edward M Pentecost|edward.pentecost@...|194979|       Dayhoit|              Harlan|       Dayhoit|     M|
|111403|      Henry F Lawyer|henry.lawyer@appl...|198515|    Washington|District of Columbia|    Washington|     M|
|111442|      Manual X Meany|manual.meany@yaho...|196608|        Hunter|                Cass|        Hunter|     M|
|111446|      Ethan V Folmar|ethan.folmar@yaho...|188581|     Ridgeview|               Boone|     Ridgeview|     M|
|111449|     Tanja J Sparrow|tanja.sparrow@yah...|195398|    Tower City|                Cass|    Tower City|     F|
|111478|Leigha K Courtema...|leigha.courtemanc...|195306|    Sun Valley|              Blaine|    Sun Valley|     F|
|111514|        Rob F Struck|rob.struck@gmail.com|198750|    Centertown|                Cole|    Centertown|     M|
+------+--------------------+--------------------+------+--------------+--------------------+--------------+------+
only showing top 20 rows
>>> customSchema = StructType([
... StructField("EID",IntegerType()),\
... StructField("Name",StringType()),\
... StructField("email",StringType()),\
... StructField("Salary",IntegerType()),\
... StructField("PlaceName",StringType()),\
... StructField("County",StringType()),\
... StructField("City",StringType()),\
... StructField("Gender",StringType())\
... ])
完整代码如下:

>>> rdd  = sc.textFile("C:/sparkCourse/filetext/part-00000-646a1d36-8f75-4eee-b937-135e933ede7f-c000.csv").map(lambda row: row.split(','))
>>> rdd.take(1)
[['EID', 'Name', 'email', 'Salary', 'PlaceName', 'County', 'City', 'Gender']]
>>> header = rdd.first()
>>> emp = rdd.filter(lambda  row: row != header)
>>> emp.take(1)
[['111135', 'Darell T Grizzle', 'darell.grizzle@yahoo.ca', '196416', 'Tallahassee', 'Leon', 'Tallahassee', 'M']]
>>> emp1 = emp.map(lambda fields:[fields[0],fields[1],fields[2],fields[3],fields[4],fields[5],fields[6],fields[7]])
>>> emp1.take(1)
[['111135', 'Darell T Grizzle', 'darell.grizzle@yahoo.ca', '196416', 'Tallahassee', 'Leon', 'Tallahassee', 'M']]
>>>
>>> customSchema = StructType([
... StructField("EID",IntegerType()),\
... StructField("Name",StringType()),\
... StructField("email",StringType()),\
... StructField("Salary",IntegerType()),\
... StructField("PlaceName",StringType()),\
... StructField("County",StringType()),\
... StructField("City",StringType()),\
... StructField("Gender",StringType())\
... ])

>>> myDF = spark.createDataFrame(emp1,customSchema)
我得到以下错误:

IntegerType无法接受类型

但是,为什么它允许在以后而不是在定义模式时将列强制转换为整数呢

我哪里做错了

>>> myDF.show()
[Stage 47:>                                                         (0 + 1) / 1]19/02/08 19:54:21 ERROR Executor: Exception in task 0.0 in stage 47.0 (TID 55)
org.apache.spark.api.python.PythonException: Traceback (most recent call last):
  File "C:\spark\python\lib\pyspark.zip\pyspark\worker.py", line 229, in main
  File "C:\spark\python\lib\pyspark.zip\pyspark\worker.py", line 224, in process
  File "C:\spark\python\lib\pyspark.zip\pyspark\serializers.py", line 372, in dump_stream
    vs = list(itertools.islice(iterator, batch))
  File "C:\spark\python\pyspark\sql\session.py", line 671, in prepare
    verify_func(obj)
  File "C:\spark\python\pyspark\sql\types.py", line 1421, in verify
    verify_value(obj)
  File "C:\spark\python\pyspark\sql\types.py", line 1402, in verify_struct
    verifier(v)
  File "C:\spark\python\pyspark\sql\types.py", line 1421, in verify
    verify_value(obj)
  File "C:\spark\python\pyspark\sql\types.py", line 1347, in verify_integer
    verify_acceptable_types(obj)
  File "C:\spark\python\pyspark\sql\types.py", line 1310, in verify_acceptable_types
    % (dataType, obj, type(obj))))
TypeError: field EID: IntegerType can not accept object '111135' in type <class 'str'>

        at org.apache.spark.api.python.BasePythonRunner$ReaderIterator.handlePythonException(PythonRunner.scala:298)
        at org.apache.spark.api.python.PythonRunner$$anon$1.read(PythonRunner.scala:438)
        at org.apache.spark.api.python.PythonRunner$$anon$1.read(PythonRunner.scala:421)
        at org.apache.spark.api.python.BasePythonRunner$ReaderIterator.hasNext(PythonRunner.scala:252)
        at org.apache.spark.InterruptibleIterator.hasNext(InterruptibleIterator.scala:37)
        at scala.collection.Iterator$$anon$12.hasNext(Iterator.scala:439)
        at scala.collection.Iterator$$anon$11.hasNext(Iterator.scala:408)
        at scala.collection.Iterator$$anon$11.hasNext(Iterator.scala:408)
        at scala.collection.Iterator$$anon$11.hasNext(Iterator.scala:408)
        at org.apache.spark.sql.catalyst.expressions.GeneratedClass$GeneratedIteratorForCodegenStage1.processNext(Unknown Source)
        at org.apache.spark.sql.execution.BufferedRowIterator.hasNext(BufferedRowIterator.java:43)
        at org.apache.spark.sql.execution.WholeStageCodegenExec$$anonfun$10$$anon$1.hasNext(WholeStageCodegenExec.scala:614)
        at org.apache.spark.sql.execution.SparkPlan$$anonfun$2.apply(SparkPlan.scala:253)
        at org.apache.spark.sql.execution.SparkPlan$$anonfun$2.apply(SparkPlan.scala:247)
        at org.apache.spark.rdd.RDD$$anonfun$mapPartitionsInternal$1$$anonfun$apply$25.apply(RDD.scala:830)
        at org.apache.spark.rdd.RDD$$anonfun$mapPartitionsInternal$1$$anonfun$apply$25.apply(RDD.scala:830)
        at org.apache.spark.rdd.MapPartitionsRDD.compute(MapPartitionsRDD.scala:38)
        at org.apache.spark.rdd.RDD.computeOrReadCheckpoint(RDD.scala:324)
        at org.apache.spark.rdd.RDD.iterator(RDD.scala:288)
        at org.apache.spark.rdd.MapPartitionsRDD.compute(MapPartitionsRDD.scala:38)
        at org.apache.spark.rdd.RDD.computeOrReadCheckpoint(RDD.scala:324)
        at org.apache.spark.rdd.RDD.iterator(RDD.scala:288)
        at org.apache.spark.scheduler.ResultTask.runTask(ResultTask.scala:87)
        at org.apache.spark.scheduler.Task.run(Task.scala:109)
        at org.apache.spark.executor.Executor$TaskRunner.run(Executor.scala:345)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
        at java.lang.Thread.run(Thread.java:748)
19/02/08 19:54:21 WARN TaskSetManager: Lost task 0.0 in stage 47.0 (TID 55, localhost, executor driver): org.apache.spark.api.python.PythonException: Traceback (most recent call last):
  File "C:\spark\python\lib\pyspark.zip\pyspark\worker.py", line 229, in main
  File "C:\spark\python\lib\pyspark.zip\pyspark\worker.py", line 224, in process
  File "C:\spark\python\lib\pyspark.zip\pyspark\serializers.py", line 372, in dump_stream
    vs = list(itertools.islice(iterator, batch))
  File "C:\spark\python\pyspark\sql\session.py", line 671, in prepare
    verify_func(obj)
  File "C:\spark\python\pyspark\sql\types.py", line 1421, in verify
    verify_value(obj)
  File "C:\spark\python\pyspark\sql\types.py", line 1402, in verify_struct
    verifier(v)
  File "C:\spark\python\pyspark\sql\types.py", line 1421, in verify
    verify_value(obj)
  File "C:\spark\python\pyspark\sql\types.py", line 1347, in verify_integer
    verify_acceptable_types(obj)
  File "C:\spark\python\pyspark\sql\types.py", line 1310, in verify_acceptable_types
    % (dataType, obj, type(obj))))
TypeError: field EID: IntegerType can not accept object '111135' in type <class 'str'>

        at org.apache.spark.api.python.BasePythonRunner$ReaderIterator.handlePythonException(PythonRunner.scala:298)
        at org.apache.spark.api.python.PythonRunner$$anon$1.read(PythonRunner.scala:438)
        at org.apache.spark.api.python.PythonRunner$$anon$1.read(PythonRunner.scala:421)
        at org.apache.spark.api.python.BasePythonRunner$ReaderIterator.hasNext(PythonRunner.scala:252)
        at org.apache.spark.InterruptibleIterator.hasNext(InterruptibleIterator.scala:37)
        at scala.collection.Iterator$$anon$12.hasNext(Iterator.scala:439)
        at scala.collection.Iterator$$anon$11.hasNext(Iterator.scala:408)
        at scala.collection.Iterator$$anon$11.hasNext(Iterator.scala:408)
        at scala.collection.Iterator$$anon$11.hasNext(Iterator.scala:408)
        at org.apache.spark.sql.catalyst.expressions.GeneratedClass$GeneratedIteratorForCodegenStage1.processNext(Unknown Source)
        at org.apache.spark.sql.execution.BufferedRowIterator.hasNext(BufferedRowIterator.java:43)
        at org.apache.spark.sql.execution.WholeStageCodegenExec$$anonfun$10$$anon$1.hasNext(WholeStageCodegenExec.scala:614)
        at org.apache.spark.sql.execution.SparkPlan$$anonfun$2.apply(SparkPlan.scala:253)
        at org.apache.spark.sql.execution.SparkPlan$$anonfun$2.apply(SparkPlan.scala:247)
        at org.apache.spark.rdd.RDD$$anonfun$mapPartitionsInternal$1$$anonfun$apply$25.apply(RDD.scala:830)
        at org.apache.spark.rdd.RDD$$anonfun$mapPartitionsInternal$1$$anonfun$apply$25.apply(RDD.scala:830)
        at org.apache.spark.rdd.MapPartitionsRDD.compute(MapPartitionsRDD.scala:38)
        at org.apache.spark.rdd.RDD.computeOrReadCheckpoint(RDD.scala:324)
        at org.apache.spark.rdd.RDD.iterator(RDD.scala:288)
        at org.apache.spark.rdd.MapPartitionsRDD.compute(MapPartitionsRDD.scala:38)
        at org.apache.spark.rdd.RDD.computeOrReadCheckpoint(RDD.scala:324)
        at org.apache.spark.rdd.RDD.iterator(RDD.scala:288)
        at org.apache.spark.scheduler.ResultTask.runTask(ResultTask.scala:87)
        at org.apache.spark.scheduler.Task.run(Task.scala:109)
        at org.apache.spark.executor.Executor$TaskRunner.run(Executor.scala:345)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
        at java.lang.Thread.run(Thread.java:748)

19/02/08 19:54:21 ERROR TaskSetManager: Task 0 in stage 47.0 failed 1 times; aborting job
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "C:\spark\python\pyspark\sql\dataframe.py", line 350, in show
    print(self._jdf.showString(n, 20, vertical))
  File "C:\spark\python\lib\py4j-0.10.6-src.zip\py4j\java_gateway.py", line 1160, in __call__
  File "C:\spark\python\pyspark\sql\utils.py", line 63, in deco
    return f(*a, **kw)
  File "C:\spark\python\lib\py4j-0.10.6-src.zip\py4j\protocol.py", line 320, in get_return_value
py4j.protocol.Py4JJavaError: An error occurred while calling o1148.showString.
: org.apache.spark.SparkException: Job aborted due to stage failure: Task 0 in stage 47.0 failed 1 times, most recent failure: Lost task 0.0 in stage 47.0 (TID 55, localhost, executor driver): org.apache.spark.api.python.PythonException: Traceback (most recent call last):
  File "C:\spark\python\lib\pyspark.zip\pyspark\worker.py", line 229, in main
  File "C:\spark\python\lib\pyspark.zip\pyspark\worker.py", line 224, in process
  File "C:\spark\python\lib\pyspark.zip\pyspark\serializers.py", line 372, in dump_stream
    vs = list(itertools.islice(iterator, batch))
  File "C:\spark\python\pyspark\sql\session.py", line 671, in prepare
    verify_func(obj)
  File "C:\spark\python\pyspark\sql\types.py", line 1421, in verify
    verify_value(obj)
  File "C:\spark\python\pyspark\sql\types.py", line 1402, in verify_struct
    verifier(v)
  File "C:\spark\python\pyspark\sql\types.py", line 1421, in verify
    verify_value(obj)
  File "C:\spark\python\pyspark\sql\types.py", line 1347, in verify_integer
    verify_acceptable_types(obj)
  File "C:\spark\python\pyspark\sql\types.py", line 1310, in verify_acceptable_types
    % (dataType, obj, type(obj))))
TypeError: field EID: IntegerType can not accept object '111135' in type <class 'str'>

        at org.apache.spark.api.python.BasePythonRunner$ReaderIterator.handlePythonException(PythonRunner.scala:298)
        at org.apache.spark.api.python.PythonRunner$$anon$1.read(PythonRunner.scala:438)
        at org.apache.spark.api.python.PythonRunner$$anon$1.read(PythonRunner.scala:421)
        at org.apache.spark.api.python.BasePythonRunner$ReaderIterator.hasNext(PythonRunner.scala:252)
        at org.apache.spark.InterruptibleIterator.hasNext(InterruptibleIterator.scala:37)
        at scala.collection.Iterator$$anon$12.hasNext(Iterator.scala:439)
        at scala.collection.Iterator$$anon$11.hasNext(Iterator.scala:408)
        at scala.collection.Iterator$$anon$11.hasNext(Iterator.scala:408)
        at scala.collection.Iterator$$anon$11.hasNext(Iterator.scala:408)
        at org.apache.spark.sql.catalyst.expressions.GeneratedClass$GeneratedIteratorForCodegenStage1.processNext(Unknown Source)
        at org.apache.spark.sql.execution.BufferedRowIterator.hasNext(BufferedRowIterator.java:43)
        at org.apache.spark.sql.execution.WholeStageCodegenExec$$anonfun$10$$anon$1.hasNext(WholeStageCodegenExec.scala:614)
        at org.apache.spark.sql.execution.SparkPlan$$anonfun$2.apply(SparkPlan.scala:253)
        at org.apache.spark.sql.execution.SparkPlan$$anonfun$2.apply(SparkPlan.scala:247)
        at org.apache.spark.rdd.RDD$$anonfun$mapPartitionsInternal$1$$anonfun$apply$25.apply(RDD.scala:830)
        at org.apache.spark.rdd.RDD$$anonfun$mapPartitionsInternal$1$$anonfun$apply$25.apply(RDD.scala:830)
        at org.apache.spark.rdd.MapPartitionsRDD.compute(MapPartitionsRDD.scala:38)
        at org.apache.spark.rdd.RDD.computeOrReadCheckpoint(RDD.scala:324)
        at org.apache.spark.rdd.RDD.iterator(RDD.scala:288)
        at org.apache.spark.rdd.MapPartitionsRDD.compute(MapPartitionsRDD.scala:38)
        at org.apache.spark.rdd.RDD.computeOrReadCheckpoint(RDD.scala:324)
        at org.apache.spark.rdd.RDD.iterator(RDD.scala:288)
        at org.apache.spark.scheduler.ResultTask.runTask(ResultTask.scala:87)
        at org.apache.spark.scheduler.Task.run(Task.scala:109)
        at org.apache.spark.executor.Executor$TaskRunner.run(Executor.scala:345)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
        at java.lang.Thread.run(Thread.java:748)

Driver stacktrace:
        at org.apache.spark.scheduler.DAGScheduler.org$apache$spark$scheduler$DAGScheduler$$failJobAndIndependentStages(DAGScheduler.scala:1599)
        at org.apache.spark.scheduler.DAGScheduler$$anonfun$abortStage$1.apply(DAGScheduler.scala:1587)
        at org.apache.spark.scheduler.DAGScheduler$$anonfun$abortStage$1.apply(DAGScheduler.scala:1586)
        at scala.collection.mutable.ResizableArray$class.foreach(ResizableArray.scala:59)
        at scala.collection.mutable.ArrayBuffer.foreach(ArrayBuffer.scala:48)
        at org.apache.spark.scheduler.DAGScheduler.abortStage(DAGScheduler.scala:1586)
        at org.apache.spark.scheduler.DAGScheduler$$anonfun$handleTaskSetFailed$1.apply(DAGScheduler.scala:831)
        at org.apache.spark.scheduler.DAGScheduler$$anonfun$handleTaskSetFailed$1.apply(DAGScheduler.scala:831)
        at scala.Option.foreach(Option.scala:257)
        at org.apache.spark.scheduler.DAGScheduler.handleTaskSetFailed(DAGScheduler.scala:831)
        at org.apache.spark.scheduler.DAGSchedulerEventProcessLoop.doOnReceive(DAGScheduler.scala:1820)
        at org.apache.spark.scheduler.DAGSchedulerEventProcessLoop.onReceive(DAGScheduler.scala:1769)
        at org.apache.spark.scheduler.DAGSchedulerEventProcessLoop.onReceive(DAGScheduler.scala:1758)
        at org.apache.spark.util.EventLoop$$anon$1.run(EventLoop.scala:48)
        at org.apache.spark.scheduler.DAGScheduler.runJob(DAGScheduler.scala:642)
        at org.apache.spark.SparkContext.runJob(SparkContext.scala:2027)
        at org.apache.spark.SparkContext.runJob(SparkContext.scala:2048)
        at org.apache.spark.SparkContext.runJob(SparkContext.scala:2067)
        at org.apache.spark.sql.execution.SparkPlan.executeTake(SparkPlan.scala:363)
        at org.apache.spark.sql.execution.CollectLimitExec.executeCollect(limit.scala:38)
        at org.apache.spark.sql.Dataset.org$apache$spark$sql$Dataset$$collectFromPlan(Dataset.scala:3272)
        at org.apache.spark.sql.Dataset$$anonfun$head$1.apply(Dataset.scala:2484)
        at org.apache.spark.sql.Dataset$$anonfun$head$1.apply(Dataset.scala:2484)
        at org.apache.spark.sql.Dataset$$anonfun$52.apply(Dataset.scala:3253)
        at org.apache.spark.sql.execution.SQLExecution$.withNewExecutionId(SQLExecution.scala:77)
        at org.apache.spark.sql.Dataset.withAction(Dataset.scala:3252)
        at org.apache.spark.sql.Dataset.head(Dataset.scala:2484)
        at org.apache.spark.sql.Dataset.take(Dataset.scala:2698)
        at org.apache.spark.sql.Dataset.showString(Dataset.scala:254)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:498)
        at py4j.reflection.MethodInvoker.invoke(MethodInvoker.java:244)
        at py4j.reflection.ReflectionEngine.invoke(ReflectionEngine.java:357)
        at py4j.Gateway.invoke(Gateway.java:282)
        at py4j.commands.AbstractCommand.invokeMethod(AbstractCommand.java:132)
        at py4j.commands.CallCommand.execute(CallCommand.java:79)
        at py4j.GatewayConnection.run(GatewayConnection.java:214)
        at java.lang.Thread.run(Thread.java:748)
Caused by: org.apache.spark.api.python.PythonException: Traceback (most recent call last):
  File "C:\spark\python\lib\pyspark.zip\pyspark\worker.py", line 229, in main
  File "C:\spark\python\lib\pyspark.zip\pyspark\worker.py", line 224, in process
  File "C:\spark\python\lib\pyspark.zip\pyspark\serializers.py", line 372, in dump_stream
    vs = list(itertools.islice(iterator, batch))
  File "C:\spark\python\pyspark\sql\session.py", line 671, in prepare
    verify_func(obj)
  File "C:\spark\python\pyspark\sql\types.py", line 1421, in verify
    verify_value(obj)
  File "C:\spark\python\pyspark\sql\types.py", line 1402, in verify_struct
    verifier(v)
  File "C:\spark\python\pyspark\sql\types.py", line 1421, in verify
    verify_value(obj)
  File "C:\spark\python\pyspark\sql\types.py", line 1347, in verify_integer
    verify_acceptable_types(obj)
  File "C:\spark\python\pyspark\sql\types.py", line 1310, in verify_acceptable_types
    % (dataType, obj, type(obj))))
TypeError: field EID: IntegerType can not accept object '111135' in type <class 'str'>

        at org.apache.spark.api.python.BasePythonRunner$ReaderIterator.handlePythonException(PythonRunner.scala:298)
        at org.apache.spark.api.python.PythonRunner$$anon$1.read(PythonRunner.scala:438)
        at org.apache.spark.api.python.PythonRunner$$anon$1.read(PythonRunner.scala:421)
        at org.apache.spark.api.python.BasePythonRunner$ReaderIterator.hasNext(PythonRunner.scala:252)
        at org.apache.spark.InterruptibleIterator.hasNext(InterruptibleIterator.scala:37)
        at scala.collection.Iterator$$anon$12.hasNext(Iterator.scala:439)
        at scala.collection.Iterator$$anon$11.hasNext(Iterator.scala:408)
        at scala.collection.Iterator$$anon$11.hasNext(Iterator.scala:408)
        at scala.collection.Iterator$$anon$11.hasNext(Iterator.scala:408)
        at org.apache.spark.sql.catalyst.expressions.GeneratedClass$GeneratedIteratorForCodegenStage1.processNext(Unknown Source)
        at org.apache.spark.sql.execution.BufferedRowIterator.hasNext(BufferedRowIterator.java:43)
        at org.apache.spark.sql.execution.WholeStageCodegenExec$$anonfun$10$$anon$1.hasNext(WholeStageCodegenExec.scala:614)
        at org.apache.spark.sql.execution.SparkPlan$$anonfun$2.apply(SparkPlan.scala:253)
        at org.apache.spark.sql.execution.SparkPlan$$anonfun$2.apply(SparkPlan.scala:247)
        at org.apache.spark.rdd.RDD$$anonfun$mapPartitionsInternal$1$$anonfun$apply$25.apply(RDD.scala:830)
        at org.apache.spark.rdd.RDD$$anonfun$mapPartitionsInternal$1$$anonfun$apply$25.apply(RDD.scala:830)
        at org.apache.spark.rdd.MapPartitionsRDD.compute(MapPartitionsRDD.scala:38)
        at org.apache.spark.rdd.RDD.computeOrReadCheckpoint(RDD.scala:324)
        at org.apache.spark.rdd.RDD.iterator(RDD.scala:288)
        at org.apache.spark.rdd.MapPartitionsRDD.compute(MapPartitionsRDD.scala:38)
        at org.apache.spark.rdd.RDD.computeOrReadCheckpoint(RDD.scala:324)
        at org.apache.spark.rdd.RDD.iterator(RDD.scala:288)
        at org.apache.spark.scheduler.ResultTask.runTask(ResultTask.scala:87)
        at org.apache.spark.scheduler.Task.run(Task.scala:109)
        at org.apache.spark.executor.Executor$TaskRunner.run(Executor.scala:345)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
        ... 1 more

>>>
>myDF.show()
[第47阶段:>(0+1)/1]19/02/08 19:54:21错误执行者:第47.0阶段任务0.0中的异常(TID 55)
org.apache.spark.api.python.PythonException:回溯(最近一次调用last):
文件“C:\spark\python\lib\pyspark.zip\pyspark\worker.py”,第229行,在main中
文件“C:\spark\python\lib\pyspark.zip\pyspark\worker.py”,第224行,正在处理中
文件“C:\spark\python\lib\pyspark.zip\pyspark\serializers.py”,第372行,在dump\u流中
vs=列表(itertools.islice(迭代器,批处理))
文件“C:\spark\python\pyspark\sql\session.py”,第671行,在prepare中
验证功能(obj)
文件“C:\spark\python\pyspark\sql\types.py”,第1421行,在verify中
验证_值(obj)
文件“C:\spark\python\pyspark\sql\types.py”,第1402行,在verify_struct中
验证者(五)
文件“C:\spark\python\pyspark\sql\types.py”,第1421行,在verify中
验证_值(obj)
文件“C:\spark\python\pyspark\sql\types.py”,第1347行,在verify\u integer中
验证可接受的类型(obj)
文件“C:\spark\python\pyspark\sql\types.py”,第1310行,在verify\u acceptable\u types中
%(数据类型,obj,类型(obj)))
TypeError:字段EID:IntegerType无法接受类型中的对象“111135”
位于org.apache.spark.api.python.BasePythonRunner$readeriator.handlePythonException(PythonRunner.scala:298)
位于org.apache.spark.api.python.PythonRunner$$anon$1.read(PythonRunner.scala:438)
位于org.apache.spark.api.python.PythonRunner$$anon$1.read(PythonRunner.scala:421)
位于org.apache.spark.api.python.BasePythonRunner$readerierator.hasNext(PythonRunner.scala:252)
在org.apache.spark.interruptblediator.hasNext(interruptblediator.scala:37)
位于scala.collection.Iterator$$anon$12.hasNext(Iterator.scala:439)
位于scala.collection.Iterator$$anon$11.hasNext(Iterator.scala:408)
位于scala.collection.Iterator$$anon$11.hasNext(Iterator.scala:408)
位于scala.collection.Iterator$$anon$11.hasNext(Iterator.scala:408)
位于org.apache.spark.sql.catalyst.expressions.GeneratedClass$GenerateEditorForCodeGenStage1.processNext(未知源)
位于org.apache.spark.sql.execution.BufferedRowIterator.hasNext(BufferedRowIterator.java:43)
位于org.apache.spark.sql.execution.whisttagecodegenexec$$anonfun$10$$anon$1.hasNext(whisttagecodegenexec.scala:614)
位于org.apache.spark.sql.execution.SparkPlan$$anonfun$2.apply(SparkPlan.scala:253)
位于org.apache.spark.sql.execution.SparkPlan$$anonfun$2.apply(SparkPlan.scala:247)
位于org.apache.spark.rdd.rdd$$anonfun$mapPartitionsInternal$1$$anonfun$apply$25.apply(rdd.scala:830)
位于org.apache.spark.rdd.rdd$$anonfun$mapPartitionsInternal$1$$anonfun$apply$25.apply(rdd.scala:830)
在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:1149)
位于java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
运行(Thread.java:748)
19/02/08 19:54:21警告TaskSetManager:在阶段47.0中丢失任务0.0(TID 55,本地主机,执行器驱动程序):org.apache.spark.api.python异常:回溯(最近一次调用last):
文件“C:\spark\python\lib\pyspark.zip\pyspark\worker.py”,第229行,在main中
文件“C:\spark\python\lib\pyspark.zip\pyspark\worker.py”,第224行,正在处理中
文件“C:\spark\python\lib\pyspark.zip\pyspark\serializers.py”,第372行,在dump\u流中
vs=列表(itertools.islice(迭代器,批处理))
文件“C:\spark\python\pyspark\sql\session.py”,第671行,在prepare中
验证功能(obj)
文件“C:\spark\python\pyspark\sql\types.py”,第1421行,在verify中
验证_值(obj)
文件“C:\spark\python\pyspark\sql\types.py”,第1402行,在verify_struct中
验证者(五)
文件“C:\spark\python\pyspark\sql\types.py”,第1421行,在verify中
验证_值(obj)
文件“C:\spark\python\pyspark\sql\types.py”,第1347行,在verify\u integer中
验证可接受的类型(obj)
文件“C:\spark\python\pyspark\sql\types.py”,第1310行,在verify\u acceptable\u types中
%(数据类型,obj,类型(obj)))
TypeError:字段EID:IntegerType无法接受类型中的对象“111135”
位于org.apache.spark.api.python.BasePythonRunner$readeriator.handlePythonException(PythonRunner.scala:298)
位于org.apache.spark.api.python.PythonRunner$$anon$1.read(PythonRunner.scala:438)
位于org.apache.spark.api.python.PythonRunner$$anon$1.read(PythonRunner.scala:421)
位于org.apache.spark.api.python.BasePythonRunner$readerierator.hasNext(PythonRunner.scala:252)
在org.apache.spark.interruptblediator.hasNext(interruptblediator.scala:37)
位于scala.collection.Iterator$$anon$12.hasNext(Iterator.scala:439)
在scala.collection.Iterator$$anon$11.has