Я следую отличному руководству по искрам
поэтому я пытаюсь загрузить в 46:00:00, README.md
но не могу то, что я делаю, это:
$ sudo docker run -i -t -h sandbox sequenceiq/spark:1.1.0 /etc/bootstrap.sh -bash
bash-4.1# cd /usr/local/spark-1.1.0-bin-hadoop2.4
bash-4.1# ls README.md
README.md
bash-4.1# ./bin/spark-shell
scala> val f = sc.textFile("README.md")
14/12/04 12:11:14 INFO storage.MemoryStore: ensureFreeSpace(164073) called with curMem=0, maxMem=278302556
14/12/04 12:11:14 INFO storage.MemoryStore: Block broadcast_0 stored as values in memory (estimated size 160.2 KB, free 265.3 MB)
f: org.apache.spark.rdd.RDD[String] = README.md MappedRDD[1] at textFile at <console>:12
scala> val wc = f.flatMap(l => l.split(" ")).map(word => (word, 1)).reduceByKey(_ + _)
org.apache.hadoop.mapred.InvalidInputException: Input path does not exist: hdfs://sandbox:9000/user/root/README.md
at org.apache.hadoop.mapred.FileInputFormat.singleThreadedListStatus(FileInputFormat.java:285)
как я могу это загрузить README.md
?
scala
apache-spark
Джас
источник
источник
ответ гонбе отличный. Но все же хочу отметить, что
file:///
=~/../../
, а не$SPARK_HOME
. Надеюсь, это поможет сэкономить время для таких новичков, как я.источник
file:///
- это корневая папка файловой системы, которую видит исполняющая JVM, а не на два уровня выше домашней папки. Формат URI , как определено в RFC 8089 являетсяfile://hostname/absolute/path
. В локальном случаеhostname
компонент (полномочия) пуст.Хотя Spark поддерживает загрузку файлов из локальной файловой системы, он требует, чтобы файлы были доступны по одному и тому же пути на всех узлах кластера.
Некоторые сетевые файловые системы, такие как NFS, AFS и слой NFS MapR, доступны пользователю как обычная файловая система.
Если ваши данные уже находятся в одной из этих систем, вы можете использовать их в качестве входных данных, просто указав file: // path; Spark будет обрабатывать это, пока файловая система смонтирована по одному и тому же пути на каждом узле. Каждый узел должен иметь одинаковый путь
Если ваш файл еще не на всех узлах в кластере, вы можете загрузить его локально в драйвер, не проходя через Spark, а затем вызвать parallelize для распространения содержимого среди рабочих.
Позаботьтесь о том, чтобы наперед указать file: // и использовать «/» или «\» в зависимости от ОС.
источник
Вам просто нужно указать путь к файлу как «файл: /// каталог / файл»
пример:
источник
Внимание:
Убедитесь, что вы запускаете искру в локальном режиме при загрузке данных из local (
sc.textFile("file:///path to the file/")
), иначе вы получите такую ошибкуCaused by: java.io.FileNotFoundException: File file:/data/sparkjob/config2.properties does not exist
. Исполнители Becasuse, которые работают на разных воркерах, не найдут этот файл по его локальному пути.источник
Если файл находится на вашем главном узле Spark (например, в случае использования AWS EMR), то сначала запустите искровую оболочку в локальном режиме.
Кроме того, вы можете сначала скопировать файл в HDFS из локальной файловой системы, а затем запустить Spark в режиме по умолчанию (например, YARN в случае использования AWS EMR), чтобы прочитать файл напрямую.
источник
У меня на рабочем столе есть файл NewsArticle.txt.
В Spark я набрал:
Мне нужно было изменить все символы \ на / для пути к файлу.
Чтобы проверить, сработало ли это, я набрал:
Я использую Windows 7, и у меня не установлен Hadoop.
источник
Это обсуждалось в списке рассылки Spark, пожалуйста, обратитесь к этому письму .
Вы должны
hadoop fs -put <localsrc> ... <dst>
скопировать файл вhdfs
:источник
Это случилось со мной со Spark 2.3 с Hadoop, также установленным в общем домашнем каталоге пользователя «hadoop». Поскольку и Spark, и Hadoop были установлены в одном общем каталоге, Spark по умолчанию рассматривает схему как
hdfs
и начинает поиск входных файлов под hdfs, как указаноfs.defaultFS
в Hadoopcore-site.xml
. В таких случаях нам нужно явно указать схему какfile:///<absoloute path to file>
.источник
Это решение этой ошибки, которую я получал в кластере Spark, который размещен в Azure в кластере Windows:
Загрузите необработанный файл HVAC.csv, проанализируйте его с помощью функции
Мы используем (wasb: ///), чтобы разрешить Hadoop доступ к файлу хранилища блога Azure, а три косой черты являются относительной ссылкой на папку контейнера запущенного узла.
Например: если путь к вашему файлу в проводнике на панели управления кластера Spark:
sflcc1 \ sflccspark1 \ HdiSamples \ SensorSampleData \ hvac
Путь описывается следующим образом: sflcc1: имя учетной записи хранения. sflccspark: имя узла кластера.
Таким образом, мы ссылаемся на имя текущего узла кластера с помощью трех относительных косых черт.
Надеюсь это поможет.
источник
Если вы пытаетесь прочитать файл из HDFS. пытаюсь установить путь в SparkConf
источник
Вам не нужно использовать sc.textFile (...) для преобразования локальных файлов в фреймы данных. Один из вариантов - прочитать локальный файл построчно, а затем преобразовать его в набор данных Spark. Вот пример для Windows-машины на Java:
Теперь вы можете использовать фрейм данных
data
в своем коде.источник
Я попробовал следующее, и это сработало из моей локальной файловой системы .. В основном искра может читать с локального пути, пути HDFS и AWS S3
источник
пытаться
источник
scala> val f = sc.textFile("./README.md") 14/12/04 12:54:33 INFO storage.MemoryStore: ensureFreeSpace(81443) called with curMem=164073, maxMem=278302556 14/12/04 12:54:33 INFO storage.MemoryStore: Block broadcast_1 stored as values in memory (estimated size 79.5 KB, free 265.2 MB) f: org.apache.spark.rdd.RDD[String] = ./README.md MappedRDD[5] at textFile at <console>:12 scala> val wc = f.flatMap(l => l.split(" ")).map(word => (word, 1)).reduceByKey(_ + _) org.apache.hadoop.mapred.InvalidInputException: Input path does not exist: hdfs://sandbox:9000/user/root/README.md at
pwd
в оболочке bashbash-4.1#