最近,我们开始面对spark 2.4.4与Hive1.2.1版本的问题。
当我们试图从按字符串类型进行分区的表中读取数据时
spark.sql("select count(*) from table where #conditions");
Caused by: java.lang.RuntimeException: Caught Hive MetaException attempting to get partition metadata by filter from Hive. You can set the Spark configuration setting spa
在AWS EMR集群上,我尝试使用Pyspark将查询结果写入到parquet,但遇到以下错误: Caused by: java.lang.RuntimeException: Parquet record is malformed: empty fields are illegal, the field should be ommited completely instead
at org.apache.hadoop.hive.ql.io.parquet.write.DataWritableWriter.write(DataWritableWriter.java:64)
at
我试图将星火DataFrame保存到带有.saveAsTable() in pySpark的Hive表(Parquet)中,但是继续运行到内存问题,如下所示:
org.apache.hadoop.hive.ql.metadata.HiveException: parquet.hadoop.MemoryManager$1:
New Memory allocation 1034931 bytes is smaller than the minimum allocation size of 1048576 bytes.
第一个数字(1034931)通常在不同的运行中不断变化。我知道第二个数字(104
我有以下代码:
Dataset<Row> rows = sparkContext.sql ("select from hive tables with multiple joins");
rows.saveAsTable(writing to another external table in hive immediately);
1)在上述情况下,当调用saveAsTable()时,spark会将整个数据集加载到内存中吗?
1.1)如果是,那么当这个查询实际上可以返回无法放入内存的大量数据时,我们该如何处理这种情况?
2)当服务器崩溃,spark开始执行saveA
我通过在我的数据帧上调用.saveAsTable创建了一个Spark SQL表。该命令完全成功。但是,现在当我查询表时,拼图文件似乎已损坏。我看到了这个错误:
"Failed with exception java.io.IOException:java.io.IOException: hdfs://ip:8020/user/hive/warehouse/people/part-r-00001.parquet not a SequenceFile"
下面是我在spark-shell中遵循的步骤
scala >val sqlContext = new org.apache.
当相同的代码在hive shell中工作时,使用spark sql frm粘合元数据的drop partition抛出问题。
**Hive shell**
hive> alter table prc_db.detl_stg drop IF EXISTS partition(prc_name="dq") ;
OK
Time taken: 1.013 seconds
**spark shell**
spark.sql(''' alter table prc_db.detl_stg drop IF EXISTS partition(prc_nam
我有两张桌子如下所示。
CREATE EXTERNAL TABLE IF NOT EXISTS TEMP_tab(id int,mytime STRING,age int)
ROW FORMAT DELIMITED
FIELDS TERMINATED BY ','
STORED AS TEXTFILE
LOCATION 'hdfs://xxx';
CREATE TABLE IF NOT EXISTS main_TAB(id int,age int)
PARTITIONED BY (mytime STRING)
STORED AS ORC
tblproperti
在Hive中执行以下查询运行良好:
ALTER TABLE schema.the_table
DROP IF EXISTS PARTITION (PARTITION_DATE<'2020-03-22')
分区日期是String类型,但没关系。目标是删除比特定日期更早的分区。
另一方面,同样的查询在星火(2.1)中使用:
val spark = SparkSession.builder.enableHiveSupport.getOrCreate
spark.sql("""
ALTER TABLE schema.the_table
DROP IF
我正在尝试从蜂箱中的db.abc中选择*,这个蜂窝表是使用spark加载的。
它不能工作,显示了一个错误:
错误: java.io.IOException: java.lang.IllegalArgumentException:超出范围的bucketId:-1 (state=,code=0)
当我使用以下属性时,我能够查询hive:
set hive.mapred.mode=nonstrict;
set hive.optimize.ppd=true;
set hive.optimize.index.filter=true;
set hive.tez.bucket.pruning=tru