You can see from the GitHub history for "toPandas()" that the function has
been in the code for 5 years.
https://github.com/apache/spark/blame/a075cd5b700f88ef447b559c6411518136558d78/python/pyspark/sql/dataframe.py#L923

When I google IllegalArgumentException: 'Unsupported class file major
version 55'

I see posts about the Java version being used. Are you sure your configs
are right?
https://stackoverflow.com/questions/53583199/pyspark-error-unsupported-class-file-major-version

On Sat, Jun 20, 2020 at 6:17 AM Anwar AliKhan <anwaralikhan...@gmail.com>
wrote:

>
> Two versions of Spark running against same code
>
>
> https://towardsdatascience.com/your-first-apache-spark-ml-model-d2bb82b599dd
>
> version spark-2.4.6-bin-hadoop2.7 is producing error for toPandas(). See
> error stack below
>
> Jupyter Notebook
>
> import findspark
>
> findspark.init('/home/spark-3.0.0-bin-hadoop2.7')
>
> cell "spark"
>
> cell output
>
> SparkSession - in-memory
>
> SparkContext
>
> Spark UI
>
> Version
>
> v3.0.0
>
> Master
>
> local[*]
>
> AppName
>
> Titanic Data
>
>
> import findspark
>
> findspark.init('/home/spark-2.4.6-bin-hadoop2.7')
>
> cell  "spark"
>
>
>
> cell output
>
> SparkSession - in-memory
>
> SparkContext
>
> Spark UI
>
> Version
>
> v2.4.6
>
> Master
>
> local[*]
>
> AppName
>
> Titanic Data
>
> cell "df.show(5)"
>
>
> +-----------+--------+------+--------------------+------+---+-----+-----+----------------+-------+-----+--------+
>
> |PassengerId|Survived|Pclass|                Name|   Sex|Age|SibSp|Parch|
>         Ticket|   Fare|Cabin|Embarked|
>
>
> +-----------+--------+------+--------------------+------+---+-----+-----+----------------+-------+-----+--------+
>
> |          1|       0|     3|Braund, Mr. Owen ...|  male| 22|    1|    0|
>       A/5 21171|   7.25| null|       S|
>
> |          2|       1|     1|Cumings, Mrs. Joh...|female| 38|    1|    0|
>       PC 17599|71.2833|  C85|       C|
>
> |          3|       1|     3|Heikkinen, Miss. ...|female| 26|    0|
> 0|STON/O2. 3101282|  7.925| null|       S|
>
> |          4|       1|     1|Futrelle, Mrs. Ja...|female| 35|    1|    0|
>         113803|   53.1| C123|       S|
>
> |          5|       0|     3|Allen, Mr. Willia...|  male| 35|    0|    0|
>         373450|   8.05| null|       S|
>
>
> +-----------+--------+------+--------------------+------+---+-----+-----+----------------+-------+-----+--------+
>
> only showing top 5 rows
>
> cell "df.toPandas()"
>
> cell output
>
> ---------------------------------------------------------------------------
>
> Py4JJavaError                             Traceback (most recent call last)
>
> /home/spark-2.4.6-bin-hadoop2.7/python/pyspark/sql/utils.py in deco(*a,
> **kw)
>
>      62         try:
>
> ---> 63             return f(*a, **kw)
>
>      64         except py4j.protocol.Py4JJavaError as e:
>
> /home/spark-2.4.6-bin-hadoop2.7/python/lib/py4j-0.10.7-src.zip/py4j/protocol.py
> in get_return_value(answer, gateway_client, target_id, name)
>
>     327                     "An error occurred while calling {0}{1}{2}.\n".
>
> --> 328                     format(target_id, ".", name), value)
>
>     329             else:
>
> Py4JJavaError: An error occurred while calling o33.collectToPython.
>
> : java.lang.IllegalArgumentException: Unsupported class file major version
> 55
>
>     at org.apache.xbean.asm6.ClassReader.<init>(ClassReader.java:166)
>
>     at org.apache.xbean.asm6.ClassReader.<init>(ClassReader.java:148)
>
>     at org.apache.xbean.asm6.ClassReader.<init>(ClassReader.java:136)
>
>     at org.apache.xbean.asm6.ClassReader.<init>(ClassReader.java:237)
>
>     at
> org.apache.spark.util.ClosureCleaner$.getClassReader(ClosureCleaner.scala:50)
>
>     at
> org.apache.spark.util.FieldAccessFinder$$anon$4$$anonfun$visitMethodInsn$7.apply(ClosureCleaner.scala:845)
>
>     at
> org.apache.spark.util.FieldAccessFinder$$anon$4$$anonfun$visitMethodInsn$7.apply(ClosureCleaner.scala:828)
>
>     at
> scala.collection.TraversableLike$WithFilter$$anonfun$foreach$1.apply(TraversableLike.scala:733)
>
>     at
> scala.collection.mutable.HashMap$$anon$1$$anonfun$foreach$2.apply(HashMap.scala:134)
>
>     at
> scala.collection.mutable.HashMap$$anon$1$$anonfun$foreach$2.apply(HashMap.scala:134)
>
>     at
> scala.collection.mutable.HashTable$class.foreachEntry(HashTable.scala:236)
>
>     at scala.collection.mutable.HashMap.foreachEntry(HashMap.scala:40)
>
>     at scala.collection.mutable.HashMap$$anon$1.foreach(HashMap.scala:134)
>
>     at
> scala.collection.TraversableLike$WithFilter.foreach(TraversableLike.scala:732)
>
>     at
> org.apache.spark.util.FieldAccessFinder$$anon$4.visitMethodInsn(ClosureCleaner.scala:828)
>
>     at org.apache.xbean.asm6.ClassReader.readCode(ClassReader.java:2175)
>
>     at org.apache.xbean.asm6.ClassReader.readMethod(ClassReader.java:1238)
>
>     at org.apache.xbean.asm6.ClassReader.accept(ClassReader.java:631)
>
>     at org.apache.xbean.asm6.ClassReader.accept(ClassReader.java:355)
>
>     at
> org.apache.spark.util.ClosureCleaner$$anonfun$org$apache$spark$util$ClosureCleaner$$clean$14.apply(ClosureCleaner.scala:272)
>
>     at
> org.apache.spark.util.ClosureCleaner$$anonfun$org$apache$spark$util$ClosureCleaner$$clean$14.apply(ClosureCleaner.scala:271)
>
>     at scala.collection.immutable.List.foreach(List.scala:392)
>
>     at
> org.apache.spark.util.ClosureCleaner$.org$apache$spark$util$ClosureCleaner$$clean(ClosureCleaner.scala:271)
>
>     at
> org.apache.spark.util.ClosureCleaner$.clean(ClosureCleaner.scala:163)
>
>     at org.apache.spark.SparkContext.clean(SparkContext.scala:2326)
>
>     at org.apache.spark.SparkContext.runJob(SparkContext.scala:2100)
>
>     at org.apache.spark.SparkContext.runJob(SparkContext.scala:2126)
>
>     at org.apache.spark.rdd.RDD$$anonfun$collect$1.apply(RDD.scala:990)
>
>     at
> org.apache.spark.rdd.RDDOperationScope$.withScope(RDDOperationScope.scala:151)
>
>     at
> org.apache.spark.rdd.RDDOperationScope$.withScope(RDDOperationScope.scala:112)
>
>     at org.apache.spark.rdd.RDD.withScope(RDD.scala:385)
>
>     at org.apache.spark.rdd.RDD.collect(RDD.scala:989)
>
>     at
> org.apache.spark.sql.execution.SparkPlan.executeCollect(SparkPlan.scala:299)
>
>     at
> org.apache.spark.sql.Dataset$$anonfun$collectToPython$1.apply(Dataset.scala:3263)
>
>     at
> org.apache.spark.sql.Dataset$$anonfun$collectToPython$1.apply(Dataset.scala:3260)
>
>     at org.apache.spark.sql.Dataset$$anonfun$52.apply(Dataset.scala:3370)
>
>     at
> org.apache.spark.sql.execution.SQLExecution$$anonfun$withNewExecutionId$1.apply(SQLExecution.scala:80)
>
>     at
> org.apache.spark.sql.execution.SQLExecution$.withSQLConfPropagated(SQLExecution.scala:127)
>
>     at
> org.apache.spark.sql.execution.SQLExecution$.withNewExecutionId(SQLExecution.scala:75)
>
>     at org.apache.spark.sql.Dataset.withAction(Dataset.scala:3369)
>
>     at org.apache.spark.sql.Dataset.collectToPython(Dataset.scala:3260)
>
>     at
> java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native
> Method)
>
>     at
> java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
>
>     at
> java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
>
>     at java.base/java.lang.reflect.Method.invoke(Method.java:566)
>
>     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:238)
>
>     at java.base/java.lang.Thread.run(Thread.java:834)
>
>
> During handling of the above exception, another exception occurred:
>
> IllegalArgumentException                  Traceback (most recent call last)
>
> <ipython-input-10-a516097529d7> in <module>
>
> ----> 1 df.toPandas()
>
> /home/spark-2.4.6-bin-hadoop2.7/python/pyspark/sql/dataframe.py in
> toPandas(self)
>
>    2153
>
>    2154         # Below is toPandas without Arrow optimization.
>
> -> 2155         pdf = pd.DataFrame.from_records(self.collect(),
> columns=self.columns)
>
>    2156         column_counter = Counter(self.columns)
>
>    2157
>
> /home/spark-2.4.6-bin-hadoop2.7/python/pyspark/sql/dataframe.py in
> collect(self)
>
>     533         """
>
>     534         with SCCallSiteSync(self._sc) as css:
>
> --> 535             sock_info = self._jdf.collectToPython()
>
>     536         return list(_load_from_socket(sock_info,
> BatchedSerializer(PickleSerializer())))
>
>     537
>
> /home/spark-2.4.6-bin-hadoop2.7/python/lib/py4j-0.10.7-src.zip/py4j/java_gateway.py
> in __call__(self, *args)
>
>    1255         answer = self.gateway_client.send_command(command)
>
>    1256         return_value = get_return_value(
>
> -> 1257             answer, self.gateway_client, self.target_id, self.name
> )
>
>    1258
>
>    1259         for temp_arg in temp_args:
>
> /home/spark-2.4.6-bin-hadoop2.7/python/pyspark/sql/utils.py in deco(*a,
> **kw)
>
>      77                 raise QueryExecutionException(s.split(': ', 1)[1],
> stackTrace)
>
>      78             if s.startswith('java.lang.IllegalArgumentException:
> '):
>
> ---> 79                 raise IllegalArgumentException(s.split(': ',
> 1)[1], stackTrace)
>
>      80             raise
>
>      81     return deco
>
> IllegalArgumentException: 'Unsupported class file major version 55'
>
>
> On Fri, 19 Jun 2020, 08:06 Stephen Boesch, <java...@gmail.com> wrote:
>
>> afaik It has been there since  Spark 2.0 in 2015.   Not certain about
>> Spark 1.5/1.6
>>
>> On Thu, 18 Jun 2020 at 23:56, Anwar AliKhan <anwaralikhan...@gmail.com>
>> wrote:
>>
>>> I first ran the  command
>>> df.show()
>>>
>>> For sanity check of my dataFrame.
>>>
>>> I wasn't impressed with the display.
>>>
>>> I then ran
>>> df.toPandas() in Jupiter Notebook.
>>>
>>> Now the display is really good looking .
>>>
>>> Is toPandas() a new function which became available in Spark 3.0 ?
>>>
>>>
>>>
>>>
>>>
>>>

-- 
I appreciate your time,

~Randy

Reply via email to