Я пытаюсь выполнить базовый пример, представленный в сегменте Вывод схемы с использованием отражения документации Apache SPARK.
Я делаю это на виртуальной машине Cloudera Quickstart (CDH5).
Пример, который я пытаюсь выполнить, выглядит следующим образом::
# sc is an existing SparkContext.
from pyspark.sql import SQLContext, Row
sqlContext = SQLContext(sc)
# Load a text file and convert each line to a Row.
lines = sc.textFile("/user/cloudera/analytics/book6_sample.csv")
parts = lines.map(lambda l: l.split(","))
people = parts.map(lambda p: Row(name=p[0], age=int(p[1])))
# Infer the schema, and register the DataFrame as a table.
schemaPeople = sqlContext.createDataFrame(people)
schemaPeople.registerTempTable("people")
# SQL can be run over DataFrames that have been registered as a table.
teenagers = sqlContext.sql("SELECT name FROM people WHERE age >= 13 AND age <= 19")
# The results of SQL queries are RDDs and support all the normal RDD operations.
teenNames = teenagers.map(lambda p: "Name: " + p.name)
for teenName in teenNames.collect():
print(teenName)
Я запустил код точно так, как показано выше, но всегда получаю сообщение об ошибке «IndexError: list index out of range», когда я выполняю последнюю команду (цикл for).
Входной файл book6_sample доступен по адресу book6_sample.csv.
Я запустил код точно так, как показано выше, но всегда получаю ошибку «IndexError: индекс списка вне диапазона», когда я выполняю последнюю команду (цикл for).
Пожалуйста, предложите указатели на то, где я ошибаюсь.
Заранее спасибо.
С уважением, Шри