Я пытаюсь сделать что-то, что должно быть довольно простым, но не могу этого сделать.
У меня есть файл .csv на FTP-сервере от клиента. Путь как таковой:
ftp://[user]:[passwd]@[IP-ADDRESS]/file.csv
Скопировав и вставив адрес, я могу легко получить доступ к файлу в моем браузере (или любой другой программе). Но я не могу получить к нему доступ в pyspark.
Вот что я пытаюсь сделать, используя databricks spark-csv (https://github.com/databricks/spark-csv):
file_path = ftp://[user]:[passwd]@[IP-ADDRESS]/file.csv
reader = sqlContext.read.format('com.databricks.spark.csv')
.options(header=False, charset='cp860', inferschema='true', delim=";")
.load(file_path)
и я получаю следующую ошибку:
org.apache.hadoop.mapred.InvalidInputException: Input path does not exist: ftp://[user]:[passwd]@[IP-ADDRESS]/file.csv
Попытка прочитать файл как текстовый файл:
df = sqlContext.read.text("ftp://[user]:[passwd]@[IP-ADDRESS]/SALES_37_TIRADENTES_2016-09-01.csv", )
df.collect()
ошибка:
Py4JJavaError: An error occurred while calling o147.collectToPython.
: java.io.IOException: No input paths specified in job
Я почти уверен, что это как-то связано с доступом по FTP, но я не уверен.
РЕДАКТИРОВАТЬ
В итоге я загрузил файл с помощью ftplib
Python и загрузил файл в RDD. Возможно, это неоптимальный подход, если размер ваших данных слишком велик, но он работает.
ftp.debian.org/debian/README
- person Arthur Camara   schedule 15.09.2016