#java #apache-spark
#java #apache-spark
Вопрос:
Я новичок в spark и изучаю spark с java на ubuntu 18.0 без явных кластеров. У меня есть файл data.csv, сохраненный в локальной файловой системе в папке java / main / resources.
при выполнении приведенного ниже кода,
SparkSession sparkSession = SparkSession.builder()
.appName("sparksql").master("local[*]")
.getOrCreate();
Dataset<Row> dataset = sparkSession.read()
.option("header", true)
.csv("/media/home/work/sparksamples/src/main/resources/exams/test.csv");
появляется ошибка ниже :
20/11/23 16:07:46 ПРЕДУПРЕЖДЕНИЕ NativeCodeLoader: невозможно загрузить собственную библиотеку hadoop для вашей платформы … используя встроенные классы Java, где это применимо
Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/hadoop/hdfs/DistributedFileSystem
at org.apache.spark.sql.execution.datasources.InMemoryFileIndex$.listLeafFiles(InMemoryFileIndex.scala:316)
at org.apache.spark.sql.execution.datasources.InMemoryFileIndex$.$anonfun$bulkListLeafFiles$1(InMemoryFileIndex.scala:195)
at scala.collection.TraversableLike.$anonfun$map$1(TraversableLike.scala:238)
at scala.collection.mutable.ResizableArray.foreach(ResizableArray.scala:62)
at scala.collection.mutable.ResizableArray.foreach$(ResizableArray.scala:55)
Could 20/11/23 16:07:46 WARN NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable
Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/hadoop/hdfs/DistributedFileSystem
at org.apache.spark.sql.execution.datasources.InMemoryFileIndex$.listLeafFiles(InMemoryFileIndex.scala:316)
at org.apache.spark.sql.execution.datasources.InMemoryFileIndex$.$anonfun$bulkListLeafFiles$1(InMemoryFileIndex.scala:195)
at scala.collection.TraversableLike.$anonfun$map$1(TraversableLike.scala:238)
at scala.collection.mutable.ResizableArray.foreach(ResizableArray.scala:62)
at scala.collection.mutable.ResizableArray.foreach$(ResizableArray.scala:55)
Как загрузить файл из локальной файловой системы без использования hdfs в Ubuntu?
Ответ №1:
Это было связано с отсутствием hadoop-client jar в последней версии — 3.3.
<dependency>
<groupId>org.apache.hadoop</groupId>
<artifactId>hadoop-client</artifactId>
<version>3.3.0</version>
</dependency>