J'ai installé sparc à /opt/spark-2.2.0-bin-hadoop2.7/
et shell python exécution à l'aideImpossible de déduire le schéma lors de la connexion à Redshift de Spark
pyspark --jars spark-redshift_2.10-3.0.0-preview1.jar,RedshiftJDBC42-1.2.7.1003.jar,hadoop-aws-2.7.1.jar,aws-java-sdk-1.7.4.jar
à partir de son dossier.
Je suis en train de lire à partir de là en utilisant les commandes suivantes en shell:
JDBC='jdbc:redshift://blablabla.regionblabla.redshift.amazonaws.com:5439/blabla?user=username&password=password'
from pyspark.sql import SQLContext
sql_context = SQLContext(sc)
df = sql_context.read \
.option("url", JDBC) \
.option("dbtable", "table_name") \
.option("tempdir", "bucket") \
.load()
et je reçois suivant retraçage:
Traceback (most recent call last):
File "<stdin>", line 4, in <module>
File "/opt/spark-2.2.0-bin-hadoop2.7/python/pyspark/sql/readwriter.py", line 165, in load
return self._df(self._jreader.load())
File "/opt/spark-2.2.0-bin-hadoop2.7/python/lib/py4j-0.10.4-src.zip/py4j/java_gateway.py", line 1133, in __call__
File "/opt/spark-2.2.0-bin-hadoop2.7/python/pyspark/sql/utils.py", line 69, in deco
raise AnalysisException(s.split(': ', 1)[1], stackTrace)
pyspark.sql.utils.AnalysisException: u'Unable to infer schema for Parquet. It must be specified manually.;'
Après quelques recherches, j'ai trouvé quelques questions et réponses indiquent que cela pourrait être parce qu'il n'y a pas de données là-bas. Mais les demandes me montrent que cette table n'est pas vide. Donc, je suppose que j'ai des problèmes de connexion. Comment régler ceci? Peut-être que j'ai des versions erronées d'étincelles ou de pots, ou un pot manquant?