Github user zasdfgbnm commented on a diff in the pull request:

    https://github.com/apache/spark/pull/18444#discussion_r128131853
  
    --- Diff: python/pyspark/sql/types.py ---
    @@ -938,12 +1016,17 @@ def _infer_type(obj):
                     return MapType(_infer_type(key), _infer_type(value), True)
             else:
                 return MapType(NullType(), NullType(), True)
    -    elif isinstance(obj, (list, array)):
    +    elif isinstance(obj, list):
             for v in obj:
                 if v is not None:
                     return ArrayType(_infer_type(obj[0]), True)
             else:
                 return ArrayType(NullType(), True)
    +    elif isinstance(obj, array):
    +        if obj.typecode in _array_type_mappings:
    +            return ArrayType(_array_type_mappings[obj.typecode](), False)
    +        else:
    +            raise TypeError("not supported type: array(%s)" % obj.typecode)
    --- End diff --
    
    Test result of python3 & spark 2.2.0 is here. I will check on python 2 in a 
few minutes. I paste the whole command line output, it's a bit lengthy. 
@HyukjinKwon could you please double check if my test is complete?
    
    ```python
    >>> import array,sys
    >>> from pyspark import *
    >>> from pyspark.sql import *
    >>> 
    >>> def assertCollectSuccess(typecode, value):
    ...      row = Row(myarray=array.array(typecode, [value]))
    ...      df = spark.createDataFrame([row])
    ...      print(typecode)
    ...      df.show()
    ... 
    >>> assertCollectSuccess('u',u'a')
    u
    +-------+
    |myarray|
    +-------+
    |    [a]|
    +-------+
    
    >>> assertCollectSuccess('f',1.2)
    f
    +-------+
    |myarray|
    +-------+
    | [null]|
    +-------+
    
    >>> assertCollectSuccess('d',1.2)
    d
    +-------+
    |myarray|
    +-------+
    |  [1.2]|
    +-------+
    
    >>> assertCollectSuccess('b',1)
    b
    +-------+
    |myarray|
    +-------+
    | [null]|
    +-------+
    
    >>> assertCollectSuccess('B',1)
    B
    +-------+
    |myarray|
    +-------+
    | [null]|
    +-------+
    
    >>> assertCollectSuccess('h',1)
    h
    +-------+
    |myarray|
    +-------+
    | [null]|
    +-------+
    
    >>> assertCollectSuccess('H',1)
    H
    +-------+
    |myarray|
    +-------+
    |    [1]|
    +-------+
    
    >>> assertCollectSuccess('i',1)
    i
    +-------+
    |myarray|
    +-------+
    |    [1]|
    +-------+
    
    >>> assertCollectSuccess('I',1)
    I
    +-------+
    |myarray|
    +-------+
    |    [1]|
    +-------+
    
    >>> assertCollectSuccess('l',1)
    l
    +-------+
    |myarray|
    +-------+
    |    [1]|
    +-------+
    
    >>> assertCollectSuccess('L',1)
    L
    17/07/18 20:55:55 ERROR Executor: Exception in task 14.0 in stage 119.0 
(TID 799)
    net.razorvine.pickle.PickleException: unsupported datatype: 64-bits 
unsigned long
            at 
net.razorvine.pickle.objects.ArrayConstructor.constructLongArrayFromUInt64(ArrayConstructor.java:302)
            at 
net.razorvine.pickle.objects.ArrayConstructor.construct(ArrayConstructor.java:240)
            at 
net.razorvine.pickle.objects.ArrayConstructor.construct(ArrayConstructor.java:26)
            at net.razorvine.pickle.Unpickler.load_reduce(Unpickler.java:707)
            at net.razorvine.pickle.Unpickler.dispatch(Unpickler.java:175)
            at net.razorvine.pickle.Unpickler.load(Unpickler.java:99)
            at net.razorvine.pickle.Unpickler.loads(Unpickler.java:112)
            at 
org.apache.spark.api.python.SerDeUtil$$anonfun$pythonToJava$1$$anonfun$apply$1.apply(SerDeUtil.scala:152)
            at 
org.apache.spark.api.python.SerDeUtil$$anonfun$pythonToJava$1$$anonfun$apply$1.apply(SerDeUtil.scala:151)
            at scala.collection.Iterator$$anon$12.nextCur(Iterator.scala:434)
            at scala.collection.Iterator$$anon$12.hasNext(Iterator.scala:440)
            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.execution.SparkPlan$$anonfun$2.apply(SparkPlan.scala:234)
            at 
org.apache.spark.sql.execution.SparkPlan$$anonfun$2.apply(SparkPlan.scala:228)
            at 
org.apache.spark.rdd.RDD$$anonfun$mapPartitionsInternal$1$$anonfun$apply$25.apply(RDD.scala:827)
            at 
org.apache.spark.rdd.RDD$$anonfun$mapPartitionsInternal$1$$anonfun$apply$25.apply(RDD.scala:827)
            at 
org.apache.spark.rdd.MapPartitionsRDD.compute(MapPartitionsRDD.scala:38)
            at org.apache.spark.rdd.RDD.computeOrReadCheckpoint(RDD.scala:323)
            at org.apache.spark.rdd.RDD.iterator(RDD.scala:287)
            at 
org.apache.spark.scheduler.ResultTask.runTask(ResultTask.scala:87)
            at org.apache.spark.scheduler.Task.run(Task.scala:108)
            at 
org.apache.spark.executor.Executor$TaskRunner.run(Executor.scala:335)
            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)
    17/07/18 20:55:55 WARN TaskSetManager: Lost task 14.0 in stage 119.0 (TID 
799, localhost, executor driver): net.razorvine.pickle.PickleException: 
unsupported datatype: 64-bits unsigned long
            at 
net.razorvine.pickle.objects.ArrayConstructor.constructLongArrayFromUInt64(ArrayConstructor.java:302)
            at 
net.razorvine.pickle.objects.ArrayConstructor.construct(ArrayConstructor.java:240)
            at 
net.razorvine.pickle.objects.ArrayConstructor.construct(ArrayConstructor.java:26)
            at net.razorvine.pickle.Unpickler.load_reduce(Unpickler.java:707)
            at net.razorvine.pickle.Unpickler.dispatch(Unpickler.java:175)
            at net.razorvine.pickle.Unpickler.load(Unpickler.java:99)
            at net.razorvine.pickle.Unpickler.loads(Unpickler.java:112)
            at 
org.apache.spark.api.python.SerDeUtil$$anonfun$pythonToJava$1$$anonfun$apply$1.apply(SerDeUtil.scala:152)
            at 
org.apache.spark.api.python.SerDeUtil$$anonfun$pythonToJava$1$$anonfun$apply$1.apply(SerDeUtil.scala:151)
            at scala.collection.Iterator$$anon$12.nextCur(Iterator.scala:434)
            at scala.collection.Iterator$$anon$12.hasNext(Iterator.scala:440)
            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.execution.SparkPlan$$anonfun$2.apply(SparkPlan.scala:234)
            at 
org.apache.spark.sql.execution.SparkPlan$$anonfun$2.apply(SparkPlan.scala:228)
            at 
org.apache.spark.rdd.RDD$$anonfun$mapPartitionsInternal$1$$anonfun$apply$25.apply(RDD.scala:827)
            at 
org.apache.spark.rdd.RDD$$anonfun$mapPartitionsInternal$1$$anonfun$apply$25.apply(RDD.scala:827)
            at 
org.apache.spark.rdd.MapPartitionsRDD.compute(MapPartitionsRDD.scala:38)
            at org.apache.spark.rdd.RDD.computeOrReadCheckpoint(RDD.scala:323)
            at org.apache.spark.rdd.RDD.iterator(RDD.scala:287)
            at 
org.apache.spark.scheduler.ResultTask.runTask(ResultTask.scala:87)
            at org.apache.spark.scheduler.Task.run(Task.scala:108)
            at 
org.apache.spark.executor.Executor$TaskRunner.run(Executor.scala:335)
            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)
    
    17/07/18 20:55:55 ERROR TaskSetManager: Task 14 in stage 119.0 failed 1 
times; aborting job
    17/07/18 20:55:55 WARN TaskSetManager: Lost task 3.0 in stage 119.0 (TID 
788, localhost, executor driver): TaskKilled (stage cancelled)
    17/07/18 20:55:55 WARN TaskSetManager: Lost task 4.0 in stage 119.0 (TID 
789, localhost, executor driver): TaskKilled (stage cancelled)
    17/07/18 20:55:55 WARN TaskSetManager: Lost task 7.0 in stage 119.0 (TID 
792, localhost, executor driver): TaskKilled (stage cancelled)
    Traceback (most recent call last):
      File "<stdin>", line 1, in <module>
      File "<stdin>", line 5, in assertCollectSuccess
      File 
"/home/gaoxiang/Downloads/spark-2.2.0-bin-hadoop2.7/python/pyspark/sql/dataframe.py",
 line 336, in show
        print(self._jdf.showString(n, 20))
      File 
"/home/gaoxiang/Downloads/spark-2.2.0-bin-hadoop2.7/python/lib/py4j-0.10.4-src.zip/py4j/java_gateway.py",
 line 1133, in __call__
      File 
"/home/gaoxiang/Downloads/spark-2.2.0-bin-hadoop2.7/python/pyspark/sql/utils.py",
 line 63, in deco
        return f(*a, **kw)
      File 
"/home/gaoxiang/Downloads/spark-2.2.0-bin-hadoop2.7/python/lib/py4j-0.10.4-src.zip/py4j/protocol.py",
 line 319, in get_return_value
    py4j.protocol.Py4JJavaError: An error occurred while calling 
o718.showString.
    : org.apache.spark.SparkException: Job aborted due to stage failure: Task 
14 in stage 119.0 failed 1 times, most recent failure: Lost task 14.0 in stage 
119.0 (TID 799, localhost, executor driver): 
net.razorvine.pickle.PickleException: unsupported datatype: 64-bits unsigned 
long
            at 
net.razorvine.pickle.objects.ArrayConstructor.constructLongArrayFromUInt64(ArrayConstructor.java:302)
            at 
net.razorvine.pickle.objects.ArrayConstructor.construct(ArrayConstructor.java:240)
            at 
net.razorvine.pickle.objects.ArrayConstructor.construct(ArrayConstructor.java:26)
            at net.razorvine.pickle.Unpickler.load_reduce(Unpickler.java:707)
            at net.razorvine.pickle.Unpickler.dispatch(Unpickler.java:175)
            at net.razorvine.pickle.Unpickler.load(Unpickler.java:99)
            at net.razorvine.pickle.Unpickler.loads(Unpickler.java:112)
            at 
org.apache.spark.api.python.SerDeUtil$$anonfun$pythonToJava$1$$anonfun$apply$1.apply(SerDeUtil.scala:152)
            at 
org.apache.spark.api.python.SerDeUtil$$anonfun$pythonToJava$1$$anonfun$apply$1.apply(SerDeUtil.scala:151)
            at scala.collection.Iterator$$anon$12.nextCur(Iterator.scala:434)
            at scala.collection.Iterator$$anon$12.hasNext(Iterator.scala:440)
            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.execution.SparkPlan$$anonfun$2.apply(SparkPlan.scala:234)
            at 
org.apache.spark.sql.execution.SparkPlan$$anonfun$2.apply(SparkPlan.scala:228)
            at 
org.apache.spark.rdd.RDD$$anonfun$mapPartitionsInternal$1$$anonfun$apply$25.apply(RDD.scala:827)
            at 
org.apache.spark.rdd.RDD$$anonfun$mapPartitionsInternal$1$$anonfun$apply$25.apply(RDD.scala:827)
            at 
org.apache.spark.rdd.MapPartitionsRDD.compute(MapPartitionsRDD.scala:38)
            at org.apache.spark.rdd.RDD.computeOrReadCheckpoint(RDD.scala:323)
            at org.apache.spark.rdd.RDD.iterator(RDD.scala:287)
            at 
org.apache.spark.scheduler.ResultTask.runTask(ResultTask.scala:87)
            at org.apache.spark.scheduler.Task.run(Task.scala:108)
            at 
org.apache.spark.executor.Executor$TaskRunner.run(Executor.scala:335)
            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:1499)
            at 
org.apache.spark.scheduler.DAGScheduler$$anonfun$abortStage$1.apply(DAGScheduler.scala:1487)
            at 
org.apache.spark.scheduler.DAGScheduler$$anonfun$abortStage$1.apply(DAGScheduler.scala:1486)
            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:1486)
            at 
org.apache.spark.scheduler.DAGScheduler$$anonfun$handleTaskSetFailed$1.apply(DAGScheduler.scala:814)
            at 
org.apache.spark.scheduler.DAGScheduler$$anonfun$handleTaskSetFailed$1.apply(DAGScheduler.scala:814)
            at scala.Option.foreach(Option.scala:257)
            at 
org.apache.spark.scheduler.DAGScheduler.handleTaskSetFailed(DAGScheduler.scala:814)
            at 
org.apache.spark.scheduler.DAGSchedulerEventProcessLoop.doOnReceive(DAGScheduler.scala:1714)
            at 
org.apache.spark.scheduler.DAGSchedulerEventProcessLoop.onReceive(DAGScheduler.scala:1669)
            at 
org.apache.spark.scheduler.DAGSchedulerEventProcessLoop.onReceive(DAGScheduler.scala:1658)
            at org.apache.spark.util.EventLoop$$anon$1.run(EventLoop.scala:48)
            at 
org.apache.spark.scheduler.DAGScheduler.runJob(DAGScheduler.scala:630)
            at org.apache.spark.SparkContext.runJob(SparkContext.scala:2022)
            at org.apache.spark.SparkContext.runJob(SparkContext.scala:2043)
            at org.apache.spark.SparkContext.runJob(SparkContext.scala:2062)
            at 
org.apache.spark.sql.execution.SparkPlan.executeTake(SparkPlan.scala:336)
            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:2853)
            at 
org.apache.spark.sql.Dataset$$anonfun$head$1.apply(Dataset.scala:2153)
            at 
org.apache.spark.sql.Dataset$$anonfun$head$1.apply(Dataset.scala:2153)
            at 
org.apache.spark.sql.Dataset$$anonfun$55.apply(Dataset.scala:2837)
            at 
org.apache.spark.sql.execution.SQLExecution$.withNewExecutionId(SQLExecution.scala:65)
            at org.apache.spark.sql.Dataset.withAction(Dataset.scala:2836)
            at org.apache.spark.sql.Dataset.head(Dataset.scala:2153)
            at org.apache.spark.sql.Dataset.take(Dataset.scala:2366)
            at org.apache.spark.sql.Dataset.showString(Dataset.scala:245)
            at sun.reflect.GeneratedMethodAccessor111.invoke(Unknown Source)
            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:280)
            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: net.razorvine.pickle.PickleException: unsupported datatype: 
64-bits unsigned long
            at 
net.razorvine.pickle.objects.ArrayConstructor.constructLongArrayFromUInt64(ArrayConstructor.java:302)
            at 
net.razorvine.pickle.objects.ArrayConstructor.construct(ArrayConstructor.java:240)
            at 
net.razorvine.pickle.objects.ArrayConstructor.construct(ArrayConstructor.java:26)
            at net.razorvine.pickle.Unpickler.load_reduce(Unpickler.java:707)
            at net.razorvine.pickle.Unpickler.dispatch(Unpickler.java:175)
            at net.razorvine.pickle.Unpickler.load(Unpickler.java:99)
            at net.razorvine.pickle.Unpickler.loads(Unpickler.java:112)
            at 
org.apache.spark.api.python.SerDeUtil$$anonfun$pythonToJava$1$$anonfun$apply$1.apply(SerDeUtil.scala:152)
            at 
org.apache.spark.api.python.SerDeUtil$$anonfun$pythonToJava$1$$anonfun$apply$1.apply(SerDeUtil.scala:151)
            at scala.collection.Iterator$$anon$12.nextCur(Iterator.scala:434)
            at scala.collection.Iterator$$anon$12.hasNext(Iterator.scala:440)
            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.execution.SparkPlan$$anonfun$2.apply(SparkPlan.scala:234)
            at 
org.apache.spark.sql.execution.SparkPlan$$anonfun$2.apply(SparkPlan.scala:228)
            at 
org.apache.spark.rdd.RDD$$anonfun$mapPartitionsInternal$1$$anonfun$apply$25.apply(RDD.scala:827)
            at 
org.apache.spark.rdd.RDD$$anonfun$mapPartitionsInternal$1$$anonfun$apply$25.apply(RDD.scala:827)
            at 
org.apache.spark.rdd.MapPartitionsRDD.compute(MapPartitionsRDD.scala:38)
            at org.apache.spark.rdd.RDD.computeOrReadCheckpoint(RDD.scala:323)
            at org.apache.spark.rdd.RDD.iterator(RDD.scala:287)
            at 
org.apache.spark.scheduler.ResultTask.runTask(ResultTask.scala:87)
            at org.apache.spark.scheduler.Task.run(Task.scala:108)
            at 
org.apache.spark.executor.Executor$TaskRunner.run(Executor.scala:335)
            at 
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
            at 
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
            ... 1 more
    
    >>> 
    >>> 
    >>> if sys.version_info[0] > 2:
    ...     assertCollectSuccess('q',1)
    ...     assertCollectSuccess('Q',1)
    ... 
    q
    17/07/18 20:55:55 ERROR Executor: Exception in task 14.0 in stage 122.0 
(TID 819)
    net.razorvine.pickle.PickleException: invalid array typecode: q
            at 
net.razorvine.pickle.objects.ArrayConstructor.construct(ArrayConstructor.java:260)
            at 
net.razorvine.pickle.objects.ArrayConstructor.construct(ArrayConstructor.java:26)
            at net.razorvine.pickle.Unpickler.load_reduce(Unpickler.java:707)
            at net.razorvine.pickle.Unpickler.dispatch(Unpickler.java:175)
            at net.razorvine.pickle.Unpickler.load(Unpickler.java:99)
            at net.razorvine.pickle.Unpickler.loads(Unpickler.java:112)
            at 
org.apache.spark.api.python.SerDeUtil$$anonfun$pythonToJava$1$$anonfun$apply$1.apply(SerDeUtil.scala:152)
            at 
org.apache.spark.api.python.SerDeUtil$$anonfun$pythonToJava$1$$anonfun$apply$1.apply(SerDeUtil.scala:151)
            at scala.collection.Iterator$$anon$12.nextCur(Iterator.scala:434)
            at scala.collection.Iterator$$anon$12.hasNext(Iterator.scala:440)
            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.execution.SparkPlan$$anonfun$2.apply(SparkPlan.scala:234)
            at 
org.apache.spark.sql.execution.SparkPlan$$anonfun$2.apply(SparkPlan.scala:228)
            at 
org.apache.spark.rdd.RDD$$anonfun$mapPartitionsInternal$1$$anonfun$apply$25.apply(RDD.scala:827)
            at 
org.apache.spark.rdd.RDD$$anonfun$mapPartitionsInternal$1$$anonfun$apply$25.apply(RDD.scala:827)
            at 
org.apache.spark.rdd.MapPartitionsRDD.compute(MapPartitionsRDD.scala:38)
            at org.apache.spark.rdd.RDD.computeOrReadCheckpoint(RDD.scala:323)
            at org.apache.spark.rdd.RDD.iterator(RDD.scala:287)
            at 
org.apache.spark.scheduler.ResultTask.runTask(ResultTask.scala:87)
            at org.apache.spark.scheduler.Task.run(Task.scala:108)
            at 
org.apache.spark.executor.Executor$TaskRunner.run(Executor.scala:335)
            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)
    17/07/18 20:55:55 WARN TaskSetManager: Lost task 14.0 in stage 122.0 (TID 
819, localhost, executor driver): net.razorvine.pickle.PickleException: invalid 
array typecode: q
            at 
net.razorvine.pickle.objects.ArrayConstructor.construct(ArrayConstructor.java:260)
            at 
net.razorvine.pickle.objects.ArrayConstructor.construct(ArrayConstructor.java:26)
            at net.razorvine.pickle.Unpickler.load_reduce(Unpickler.java:707)
            at net.razorvine.pickle.Unpickler.dispatch(Unpickler.java:175)
            at net.razorvine.pickle.Unpickler.load(Unpickler.java:99)
            at net.razorvine.pickle.Unpickler.loads(Unpickler.java:112)
            at 
org.apache.spark.api.python.SerDeUtil$$anonfun$pythonToJava$1$$anonfun$apply$1.apply(SerDeUtil.scala:152)
            at 
org.apache.spark.api.python.SerDeUtil$$anonfun$pythonToJava$1$$anonfun$apply$1.apply(SerDeUtil.scala:151)
            at scala.collection.Iterator$$anon$12.nextCur(Iterator.scala:434)
            at scala.collection.Iterator$$anon$12.hasNext(Iterator.scala:440)
            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.execution.SparkPlan$$anonfun$2.apply(SparkPlan.scala:234)
            at 
org.apache.spark.sql.execution.SparkPlan$$anonfun$2.apply(SparkPlan.scala:228)
            at 
org.apache.spark.rdd.RDD$$anonfun$mapPartitionsInternal$1$$anonfun$apply$25.apply(RDD.scala:827)
            at 
org.apache.spark.rdd.RDD$$anonfun$mapPartitionsInternal$1$$anonfun$apply$25.apply(RDD.scala:827)
            at 
org.apache.spark.rdd.MapPartitionsRDD.compute(MapPartitionsRDD.scala:38)
            at org.apache.spark.rdd.RDD.computeOrReadCheckpoint(RDD.scala:323)
            at org.apache.spark.rdd.RDD.iterator(RDD.scala:287)
            at 
org.apache.spark.scheduler.ResultTask.runTask(ResultTask.scala:87)
            at org.apache.spark.scheduler.Task.run(Task.scala:108)
            at 
org.apache.spark.executor.Executor$TaskRunner.run(Executor.scala:335)
            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)
    
    17/07/18 20:55:55 ERROR TaskSetManager: Task 14 in stage 122.0 failed 1 
times; aborting job
    17/07/18 20:55:55 WARN TaskSetManager: Lost task 1.0 in stage 122.0 (TID 
806, localhost, executor driver): TaskKilled (stage cancelled)
    Traceback (most recent call last):
      File "<stdin>", line 2, in <module>
      File "<stdin>", line 5, in assertCollectSuccess
      File 
"/home/gaoxiang/Downloads/spark-2.2.0-bin-hadoop2.7/python/pyspark/sql/dataframe.py",
 line 336, in show
        print(self._jdf.showString(n, 20))
      File 
"/home/gaoxiang/Downloads/spark-2.2.0-bin-hadoop2.7/python/lib/py4j-0.10.4-src.zip/py4j/java_gateway.py",
 line 1133, in __call__
      File 
"/home/gaoxiang/Downloads/spark-2.2.0-bin-hadoop2.7/python/pyspark/sql/utils.py",
 line 63, in deco
        return f(*a, **kw)
      File 
"/home/gaoxiang/Downloads/spark-2.2.0-bin-hadoop2.7/python/lib/py4j-0.10.4-src.zip/py4j/protocol.py",
 line 319, in get_return_value
    py4j.protocol.Py4JJavaError: An error occurred while calling 
o772.showString.
    : org.apache.spark.SparkException: Job aborted due to stage failure: Task 
14 in stage 122.0 failed 1 times, most recent failure: Lost task 14.0 in stage 
122.0 (TID 819, localhost, executor driver): 
net.razorvine.pickle.PickleException: invalid array typecode: q
            at 
net.razorvine.pickle.objects.ArrayConstructor.construct(ArrayConstructor.java:260)
            at 
net.razorvine.pickle.objects.ArrayConstructor.construct(ArrayConstructor.java:26)
            at net.razorvine.pickle.Unpickler.load_reduce(Unpickler.java:707)
            at net.razorvine.pickle.Unpickler.dispatch(Unpickler.java:175)
            at net.razorvine.pickle.Unpickler.load(Unpickler.java:99)
            at net.razorvine.pickle.Unpickler.loads(Unpickler.java:112)
            at 
org.apache.spark.api.python.SerDeUtil$$anonfun$pythonToJava$1$$anonfun$apply$1.apply(SerDeUtil.scala:152)
            at 
org.apache.spark.api.python.SerDeUtil$$anonfun$pythonToJava$1$$anonfun$apply$1.apply(SerDeUtil.scala:151)
            at scala.collection.Iterator$$anon$12.nextCur(Iterator.scala:434)
            at scala.collection.Iterator$$anon$12.hasNext(Iterator.scala:440)
            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.execution.SparkPlan$$anonfun$2.apply(SparkPlan.scala:234)
            at 
org.apache.spark.sql.execution.SparkPlan$$anonfun$2.apply(SparkPlan.scala:228)
            at 
org.apache.spark.rdd.RDD$$anonfun$mapPartitionsInternal$1$$anonfun$apply$25.apply(RDD.scala:827)
            at 
org.apache.spark.rdd.RDD$$anonfun$mapPartitionsInternal$1$$anonfun$apply$25.apply(RDD.scala:827)
            at 
org.apache.spark.rdd.MapPartitionsRDD.compute(MapPartitionsRDD.scala:38)
            at org.apache.spark.rdd.RDD.computeOrReadCheckpoint(RDD.scala:323)
            at org.apache.spark.rdd.RDD.iterator(RDD.scala:287)
            at 
org.apache.spark.scheduler.ResultTask.runTask(ResultTask.scala:87)
            at org.apache.spark.scheduler.Task.run(Task.scala:108)
            at 
org.apache.spark.executor.Executor$TaskRunner.run(Executor.scala:335)
            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:1499)
            at 
org.apache.spark.scheduler.DAGScheduler$$anonfun$abortStage$1.apply(DAGScheduler.scala:1487)
            at 
org.apache.spark.scheduler.DAGScheduler$$anonfun$abortStage$1.apply(DAGScheduler.scala:1486)
            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:1486)
            at 
org.apache.spark.scheduler.DAGScheduler$$anonfun$handleTaskSetFailed$1.apply(DAGScheduler.scala:814)
            at 
org.apache.spark.scheduler.DAGScheduler$$anonfun$handleTaskSetFailed$1.apply(DAGScheduler.scala:814)
            at scala.Option.foreach(Option.scala:257)
            at 
org.apache.spark.scheduler.DAGScheduler.handleTaskSetFailed(DAGScheduler.scala:814)
            at 
org.apache.spark.scheduler.DAGSchedulerEventProcessLoop.doOnReceive(DAGScheduler.scala:1714)
            at 
org.apache.spark.scheduler.DAGSchedulerEventProcessLoop.onReceive(DAGScheduler.scala:1669)
            at 
org.apache.spark.scheduler.DAGSchedulerEventProcessLoop.onReceive(DAGScheduler.scala:1658)
            at org.apache.spark.util.EventLoop$$anon$1.run(EventLoop.scala:48)
            at 
org.apache.spark.scheduler.DAGScheduler.runJob(DAGScheduler.scala:630)
            at org.apache.spark.SparkContext.runJob(SparkContext.scala:2022)
            at org.apache.spark.SparkContext.runJob(SparkContext.scala:2043)
            at org.apache.spark.SparkContext.runJob(SparkContext.scala:2062)
            at 
org.apache.spark.sql.execution.SparkPlan.executeTake(SparkPlan.scala:336)
            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:2853)
            at 
org.apache.spark.sql.Dataset$$anonfun$head$1.apply(Dataset.scala:2153)
            at 
org.apache.spark.sql.Dataset$$anonfun$head$1.apply(Dataset.scala:2153)
            at 
org.apache.spark.sql.Dataset$$anonfun$55.apply(Dataset.scala:2837)
            at 
org.apache.spark.sql.execution.SQLExecution$.withNewExecutionId(SQLExecution.scala:65)
            at org.apache.spark.sql.Dataset.withAction(Dataset.scala:2836)
            at org.apache.spark.sql.Dataset.head(Dataset.scala:2153)
            at org.apache.spark.sql.Dataset.take(Dataset.scala:2366)
            at org.apache.spark.sql.Dataset.showString(Dataset.scala:245)
            at sun.reflect.GeneratedMethodAccessor111.invoke(Unknown Source)
            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:280)
            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: net.razorvine.pickle.PickleException: invalid array typecode: q
            at 
net.razorvine.pickle.objects.ArrayConstructor.construct(ArrayConstructor.java:260)
            at 
net.razorvine.pickle.objects.ArrayConstructor.construct(ArrayConstructor.java:26)
            at net.razorvine.pickle.Unpickler.load_reduce(Unpickler.java:707)
            at net.razorvine.pickle.Unpickler.dispatch(Unpickler.java:175)
            at net.razorvine.pickle.Unpickler.load(Unpickler.java:99)
            at net.razorvine.pickle.Unpickler.loads(Unpickler.java:112)
            at 
org.apache.spark.api.python.SerDeUtil$$anonfun$pythonToJava$1$$anonfun$apply$1.apply(SerDeUtil.scala:152)
            at 
org.apache.spark.api.python.SerDeUtil$$anonfun$pythonToJava$1$$anonfun$apply$1.apply(SerDeUtil.scala:151)
            at scala.collection.Iterator$$anon$12.nextCur(Iterator.scala:434)
            at scala.collection.Iterator$$anon$12.hasNext(Iterator.scala:440)
            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.execution.SparkPlan$$anonfun$2.apply(SparkPlan.scala:234)
            at 
org.apache.spark.sql.execution.SparkPlan$$anonfun$2.apply(SparkPlan.scala:228)
            at 
org.apache.spark.rdd.RDD$$anonfun$mapPartitionsInternal$1$$anonfun$apply$25.apply(RDD.scala:827)
            at 
org.apache.spark.rdd.RDD$$anonfun$mapPartitionsInternal$1$$anonfun$apply$25.apply(RDD.scala:827)
            at 
org.apache.spark.rdd.MapPartitionsRDD.compute(MapPartitionsRDD.scala:38)
            at org.apache.spark.rdd.RDD.computeOrReadCheckpoint(RDD.scala:323)
            at org.apache.spark.rdd.RDD.iterator(RDD.scala:287)
            at 
org.apache.spark.scheduler.ResultTask.runTask(ResultTask.scala:87)
            at org.apache.spark.scheduler.Task.run(Task.scala:108)
            at 
org.apache.spark.executor.Executor$TaskRunner.run(Executor.scala:335)
            at 
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
            at 
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
            ... 1 more
    
    >>> 
    >>> if sys.version_info[0] < 3:
    ...     assertCollectSuccess('c','a')
    ... 
    >>> 
    ```


---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at infrastruct...@apache.org or file a JIRA ticket
with INFRA.
---

---------------------------------------------------------------------
To unsubscribe, e-mail: reviews-unsubscr...@spark.apache.org
For additional commands, e-mail: reviews-h...@spark.apache.org

Reply via email to