Я запустил командную оболочку pyspark на моем сервере следующим образом:
pyspark --packages org.apache.spark:spark-avro_2.11:2.4.0
Затем я загрузил свой фрейм данных:
products = spark.read.csv('products.csv',header=True,inferSchema=True)
, когда я попытался сохранить этот фрейм данных:
products.write.format('avro').save('prods.avro')
и я получаю этот журнал:
Traceback (most recent call last): File "<stdin>", line 1, in <module> File
"/ usr / hdp / 2.5.0.0-1245 / spark2 / python / pyspark / sql / readwriter.py", строка 532 , в файле сохранения self._jwrite.save (path) "/usr/hdp/2.5.0.0-1245/spark2/python/lib/py4j-0.10.1-src.zip/py4j/java_gateway.py", строка 933, в вызов Файл "/usr/hdp/2.5.0.0-1245/spark2/python/pyspark/sql/utils.py", строка 63, в обратном порядке возвращает f (* a, ** kw) Файл "/usr/hdp/2.5.0.0-1245/spark2/python/lib/py4j-0.10.1-src.zip/py4j/protocol.py", строка 312, в get_return_value py4j.protocol. Py4JJavaError: Произошла ошибка при вызове o49.save. : java .lang.NoClassDefFoundError: org / apache / spark / sql / катализатор / util / CaseInsensitiveMap $ в org. apache .spark. sql .avro.AvroOptions. (AvroOptions. scala: 34) в org. apache .spark. sql .avro.AvroFileFormat.prepareWrite (AvroFileFormat. scala: 115) в org. apache .spark. sql .execution.datasources.InsertIntoHadoopFsRelationCommand $$ anonfun $ run $$ anonfun $ 4.apply (InsertIntoHadoopFsRelationCommand. scala: 121) в org. apache .spark. sql .execution.datasources.InsertIntoHadoopFsRelationCommand $$ anonfun $ run $ 1 $$ anonfun $ 4.applyFonshipReh *: 121) в орг. apache .spark. sql .execution.datasources.BaseWriterContainer.driverSideSetup (WriterContainer. scala: 105) в орг. apache .spark. sql .execution.datasources. InsertIntoHadoopFsRelationCommand $$ anonfun $ run $ 1.apply $ mcV $ sp (InsertIntoHadoopFsRelationCommand. scala: 140) в org. apache .spark. sql .execution.datasources.InsertIntoHadoopFsRelationComuns $ для запуска (только для $ $) . scala: 115) в орг. apache .spark. sql .execution.datasources.InsertIntoHadoopFsRelationCommand $$ anonfun $ run $ 1.apply (InsertIntoHadoopFsRelationCommand. scala: 115) в орг. apache .spark. sql .execution.SQLExecution $. SQLExecution. scala: 57) в орг. apache .spark. sql .execution.datasources.InsertIntoHadoopFsRelationCommand.run (InsertIntoHadoopFsRelationCommand. scala: 115) в орг. apache .spark. sql. execute.command.ExecutedCommandExe c .sideEffectResult $ lzycompute (команды. scala: 60) в org. apache .spark. sql .execution.command.ExecutedCommandExe c .sideEffectResult (команды. scala : 58) в орг. apache .spark. sql .execution.command.ExecutedCommandExe c .doExecute (команды. scala: 74) в орг. apache .spark. sql .execution. SparkPlan $$ anonfun $ execute $ 1.apply (SparkPlan. scala: 115) в орг. apache .spark. sql .execution.SparkPlan $$ anonfun $ execute $ 1.apply (SparkPlan. scala: 115 ) в орг. apache .spark. sql .execution.SparkPlan $$ anonfun $ executeQuery $ 1.apply (SparkPlan. scala: 136) в орг. apache .spark.rdd .RDDOperationScope $ .withScope (RDDOperationScope. scala: 151) в орг. apache .spark. sql .execution.SparkPlan.executeQuery (SparkPlan. scala: 133) в орг. apache .spark. sql .execution.SparkPlan.execute (SparkPlan. scala: 114) в орг. apache .spark. sql .execution.QueryExecution.toRdd $ lzycompute (QueryExecution. scala: 86) в орг. apache .spark. sql .execution.QueryExecution.toRdd (QueryExecution. scala: 86) в org. apache .spark. sql .execution.datasources.DataSource.write (DataSource. scala) : 487) в орг. apache .spark. sql .DataFrameWriter.save (DataFrameWriter. scala: 211) в орг. apache .spark. sql .DataFrameWriter.save (DataFrameWriter. scala : 194) в sun.reflect.NativeMethodAccessorImpl.invoke0 (собственный метод) в sun.reflect.NativeMethodAccessorImpl.invoke (NativeMethodAccessorImpl. java: 62) в sun.reflect. DelegatingMethodAccessorImpl.invoke (DelegatingMethodAccessorImpl. java: 43) в java .lang.reflect.Method.invoke (Метод. java: 498) в py4j.reflection.MethodInvoker.invoke (MethodInvoker * 11): 11). в py4j.reflection.ReflectionEngine.invoke (ReflectionEngine. java: 357) в py4j.Gateway.invoke (Gateway. java: 280) в py4j.commands.AbstractCommand.invokeMethod (AbstractCommand. java: 128) в py4j.commands.CallCommand.execute (CallCommand. java: 79) в py4j.GatewayConnection.run (GatewayConnection. java: 211) в java .lang.Thread.run (поток. java: 745) Вызывается: java .lang.ClassNotFoundException: org. apache .spark. sql .catalyst.util.CaseInsensitiveMap $ at java. net .URLClassLoader.findClass (URLClassLoader. java: 381) в java .lang.ClassLoader.loadClass (ClassLoader. java: 424) в java .lang.ClassLoader.loadClass (ClassLoader. java: 357) ... еще 35
в чем проблема.