#python #dataframe #apache-spark #pyspark #jupyter-notebook
#python #фрейм данных #apache-spark #pyspark #jupyter-записная книжка
Вопрос:
Я пытаюсь прочитать файл csv из s3 и создать искровой фрейм данных. Я получаю несколько ошибок, которые я не понимаю.
Мой код выглядит так
from pyspark.ml.evaluation import RegressionEvaluator
from pyspark.ml.recommendation import ALS
from pyspark.sql import Row
from pyspark.sql import SparkSession
from pyspark.sql import SQLContext
from pyspark.sql.types import *
spark = SparkSession.builder.getOrCreate()
df = spark.read.csv("https://s3.myaws.com/datastore/apprecords.csv")
Когда я запускаю вышеуказанное из своего ноутбука Jupyter, я получаю следующие ошибки
---------------------------------------------------------------------------
Py4JJavaError Traceback (most recent call last)
<ipython-input-15-09011108d9e8> in <module>
----> 1 df = spark.read.csv("https://s3.myaws.com/datastore/apprecords.csv")
2
3
~/spark-2.4.4-bin-hadoop2.7/python/lib/pyspark.zip/pyspark/sql/readwriter.py in csv(self, path, schema, sep, encoding, quote, escape, comment, header, inferSchema, ignoreLeadingWhiteSpace, ignoreTrailingWhiteSpace, nullValue, nanValue, positiveInf, negativeInf, dateFormat, timestampFormat, maxColumns, maxCharsPerColumn, maxMalformedLogPerPartition, mode, columnNameOfCorruptRecord, multiLine, charToEscapeQuoteEscaping, samplingRatio, enforceSchema, emptyValue)
474 path = [path]
475 if type(path) == list:
--> 476 return self._df(self._jreader.csv(self._spark._sc._jvm.PythonUtils.toSeq(path)))
477 elif isinstance(path, RDD):
478 def func(iterator):
~/spark-2.4.4-bin-hadoop2.7/python/lib/py4j-0.10.7-src.zip/py4j/java_gateway.py in __call__(self, *args)
1255 answer = self.gateway_client.send_command(command)
1256 return_value = get_return_value(
-> 1257 answer, self.gateway_client, self.target_id, self.name)
1258
1259 for temp_arg in temp_args:
~/spark-2.4.4-bin-hadoop2.7/python/lib/pyspark.zip/pyspark/sql/utils.py in deco(*a, **kw)
61 def deco(*a, **kw):
62 try:
---> 63 return f(*a, **kw)
64 except py4j.protocol.Py4JJavaError as e:
65 s = e.java_exception.toString()
Комментарии:
1. Используете ли вы его на aws?
2. да, это экземпляр EC2 с Amazon Linux, он также относится к типу экземпляра t2.large
Ответ №1:
Поскольку вы используете его из самого AWS, не могли бы вы попробовать без http:// и в формате s3://bucket-name/file.csv
import pandas as pd
df = pd.read_csv("s3://datastore/apprecords.csv")