apache spark загрузить внутреннюю папку - PullRequest
0 голосов
/ 10 ноября 2018
import findspark
findspark.init('C:\spark')
from pyspark.sql import SparkSession

spark = SparkSession.builder.getOrCreate()

a = []
i=1880
while i<2018:
    a.append(str(i)+'/'+str(i)+'verr.csv')
    i = i+1

dataset1 = spark.read.format('csv').option('header','true').load('C://venq/uyh/'+ a)

я запускаю код и получаю ошибку;dataset1 = spark.read.format ('csv') .option ('header', 'true') .load ('C: // venq / uyh /' + a) TypeError: может объединять только str (не "list")) в str

у меня есть цикл "C: \ venq \ uyh \ 1880 \ 1880 \ verr.csv".У меня есть CSV-файлы во вложенных папках.Я хочу прочитать их все с искрой.однако я получаю следующую ошибку.Как я могу решить это?спасибо

1 Ответ

0 голосов
/ 10 ноября 2018

переменная 'a' представляет собой список файлов.

dataset1 = spark.read.format('csv').option('header','true').load('C://venq/uyh/'+ a)

Здесь вы пытаетесь объединить строку «C: // venq / uyh /» с «a», который представляет собой список, который выдает ошибку. Попробуйте

root = r"C://venq/uyh/"

while i<2018:
    a.append(root + str(i)+'/'+ str(i)+'verr.csv')
    i = i+1

, а затем использовать непосредственно

dataset1 = spark.read.format('csv').option('header','true').load(a)

...