HDFS Входной путь не - PullRequest
0 голосов
/ 05 февраля 2020

Я новичок в Spark и хотел ввести csv-файл в фрейм данных.

Я ввел это, чтобы попасть в оболочку pyspark:

 pyspark --packages com.databricks:spark-csv_2.10:1.5.0

Затем я ввел эту команду в оболочке:

df = sqlContext.read.option("header", "true")
    .option("delimiter", ";")
    .format("com.databricks.spark.csv")
    .load("hdfs://path.csv");

После этого я получил это исключение:

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/usr/hdp/2.3.6.0-3796/spark/python/pyspark/sql/readwriter.py", line 121, in load
    return self._df(self._jreader.load(path))
  File "/usr/hdp/2.3.6.0-3796/spark/python/lib/py4j-0.8.2.1-src.zip/py4j/java_gateway.py", line 538, in __call__
  File "/usr/hdp/2.3.6.0-3796/spark/python/pyspark/sql/utils.py", line 36, in deco
    return f(*a, **kw)
  File "/usr/hdp/2.3.6.0-3796/spark/python/lib/py4j-0.8.2.1-src.zip/py4j/protocol.py", line 300, in get_return_value
py4j.protocol.Py4JJavaError: An error occurred while calling o39.load.
: org.apache.hadoop.mapred.InvalidInputException: Input path does not exist: hdfs:/user/vagrant/data/letters.csv
        at org.apache.hadoop.mapred.FileInputFormat.singleThreadedListStatus(FileInputFormat.java:287)
        at org.apache.hadoop.mapred.FileInputFormat.listStatus(FileInputFormat.java:229)
        at org.apache.hadoop.mapred.FileInputFormat.getSplits(FileInputFormat.java:315)
        at org.apache.spark.rdd.HadoopRDD.getPartitions(HadoopRDD.scala:207)
        at org.apache.spark.rdd.RDD$$anonfun$partitions$2.apply(RDD.scala:239)
        at org.apache.spark.rdd.RDD$$anonfun$partitions$2.apply(RDD.scala:237)
        at scala.Option.getOrElse(Option.scala:120)
        ...

1 Ответ

0 голосов
/ 06 февраля 2020

По умолчанию Spark будет читать из HDFS.

Если файл находится в HDFS root, просто используйте это

.load("/path.csv");
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...