当前位置: 首页 > 知识库问答 >
问题:

火花2.1.1读/写EMR上的redshift时出错

漆雕稳
2023-03-14

尝试从/向redshift读/写(s3中的数据)。但在访问数据帧时会出现奇怪的错误。我可以看到正在创建数据帧,并且它能够访问数据,因为它输出表的列名

scala> :require /home/hadoop/spark-redshift_2.10-2.0.1.jar
Added '/home/hadoop/spark-redshift_2.10-2.0.1.jar' to classpath.

scala> :require /home/hadoop/RedshiftJDBC41-1.2.12.1017.jar
Added '/home/hadoop/RedshiftJDBC41-1.2.12.1017.jar' to classpath.

scala> :require /home/hadoop/spark-avro_2.11-3.2.0.jar
Added '/home/hadoop/spark-avro_2.11-3.2.0.jar' to classpath.

scala>   val read_data = (spark.read
     |     .format("com.databricks.spark.redshift")
     |     .option("url", "jdbc:redshift://redshifthost/schema?user=admin&password=password")
     |     .option("query", "SELECT * FROM schema.table LIMIT 1")
     |     .option("tempdir", tempS3Dir)
     |     .option("forward_spark_s3_credentials",true)
     |     .load())
read_data: org.apache.spark.sql.DataFrame = [aid: int, uid: int ... 3 more fields]

scala> read_data.count()

共有1个答案

施彬郁
2023-03-14

问题要么是我如何导入包,要么是我正在使用的包的版本。下面的安装软件包的方式就像一个魅力

./bin/spark-shell --packages com.databricks:spark-avro_2.11:3.2.0,com.databricks:spark-redshift_2.11:2.0.1,com.databricks:spark-csv_2.11:1.5.0 --jars /home/hadoop/RedshiftJDBC41-1.2.12.1017.jar
 类似资料:
  • 我正在尝试使用Databricks的spark-csv2.10依赖关系将一个数据帧写入到HDFS的*.csv文件。依赖关系似乎可以正常工作,因为我可以将.csv文件读入数据帧。但是当我执行写操作时,我会得到以下错误。将头写入文件后会出现异常。 当我将查询更改为时,write工作很好。 有谁能帮我一下吗? 编辑:根据Chandan的请求,这里是的结果

  • 首先,我想说的是我看到的解决这个问题的唯一方法是:Spark 1.6.1 SASL。但是,在为spark和yarn认证添加配置时,仍然不起作用。下面是我在Amazon's EMR的一个yarn集群上使用spark-submit对spark的配置: 注意,我用代码将spark.authenticate添加到了sparkContext的hadoop配置中,而不是core-site.xml(我假设我可以

  • 如何在2.1.1中存档相同的行为? 谢谢你。

  • 正在尝试读取avro文件。 无法将运行到Avro架构的数据转换为Spark SQL StructType:[“null”,“string”] 尝试手动创建架构,但现在遇到以下情况: 通用域名格式。databricks。火花阿夫罗。SchemaConverters$CompatibleSchemaException:无法将Avro架构转换为catalyst类型,因为路径处的架构不兼容(avroTyp

  • 我在一个Spark项目上工作,这里我有一个文件是在parquet格式,当我试图用java加载这个文件时,它给了我下面的错误。但是,当我用相同的路径在hive中加载相同的文件并编写查询select*from table_name时,它工作得很好,数据也很正常。关于这个问题,请帮助我。 java.io.ioException:无法读取页脚:java.lang.runtimeException:损坏的文

  • 我有一个很好的工作,我在两个数据帧之间进行外部连接。第一个数据帧的大小为260 GB,文件格式为文本文件,分为2200个文件,第二个数据帧的大小为2GB。然后,将大约260 GB的数据帧输出写入S3需要很长的时间,因为我在EMR上做了很大的更改,所以我取消了这一操作,之后的2个多小时。 这是我的集群信息。 这是我正在设置的群集配置 我尝试设置内存组件手动也像下面和性能是更好的但同样的事情它是再次采