从 Redshift returns 空 DataFrame 读取 Spark DataFrame

Reading Spark DataFrame from Redshift returns empty DataFrame

我正在使用:

I 运行 pyspark 与 EMR 集群 (emr-5.28.0) 具有:pyspark --packages org.apache.spark:spark-avro_2.11:2.4.4

我在 spark 类路径中有以下 jar:

我执行这段代码:

url = "jdbc:redshift://my.cluster:5439/my_db?user=my_user&password=my_password"
query = "select * from schema.table where trunc(timestamp)='2019-09-10'"
df = sqlContext.read.format('com.databricks.spark.redshift')\
.option("url", url)\
.option("tempdir", "s3a://bucket/tmp_folder")\
.option("query", query)\
.option("aws_iam_role", "arn_iam_role")\
.load()

然后 df.count() 它 returns 73(这是该查询的行数)但是如果我 df.show(4) 它 returns 一个空的 DataFrame,不错误,它只是打印架构。

我通过将格式更改为 'jdbc' 并仅使用数据块驱动程序写入数据而不是读取数据来使其工作。