我对雪花是新手,但我的公司一直在成功地使用它。
目前正在使用Java parquet-avro V1.10.1使用现有的Avro模式编写Parquet文件。
我已经削减了Avro模式,并发现Avro模式中存在一个MAP类型是导致这个问题的原因。
田地是
{
"name": "FeatureAmounts",
"type": {
"type": "map",
"values": "records.MoneyDecimal"
}
}
使用Parquet-Tools的Parquet模式示例。
message record.ResponseRecord {
required binary GroupId (STRING);
required int64 EntryTime (TIMESTAMP(MILLIS,true));
required int64 HandlingDuration;
required binary Id (STRING);
optional binary ResponseId (STRING);
required binary RequestId (STRING);
optional fixed_len_byte_array(12) CostInUSD (DECIMAL(28,15));
required group FeatureAmounts (MAP) {
repeated group map (MAP_KEY_VALUE) {
required binary key (STRING);
required fixed_len_byte_array(12) value (DECIMAL(28,15));
}
}
}
感谢任何协助
逻辑类型Null不能应用于组节点
查找上面的错误,似乎正在使用Apache Arrow的parquet库的一个版本来读取该文件。
然而,仔细观察,真正的问题在于在基于Avro的Parquet Writer实现中使用遗留类型(以下假设使用Java编写文件)。
不幸的是,这是硬编码的行为,没有影响映射类型的配置选项可以帮助为Apache Arrow(扩展为Snowflake)生成正确的文件。在Apache Parquet开发人员发布适当的修复程序之前,您需要使用较旧版本的writer。
我使用的是spark 2.4.7和spark-snowflake 2.8.4,以及snowflake jdbc 3.12.17。我在Mac OS X Big Sur上。这发生在我升级到大苏尔之后,尽管我不确定这是否有关系。 我试过: 将bouncy castle提供程序作为包依赖项添加到我的配置中 检查是否指向Java 8(它确实指向) 重新安装java 8(使用homebrew和adoptope
如何将数据帧中的数据写入到单个。拼花地板文件(两个数据 df.rdd.get1个分区 1个 如果我使用上述命令在HDFS中创建拼花文件,它将在HDFS中创建目录“payloads.parquet”,并在该目录中创建多个文件。拼花地板文件,元数据文件正在保存。 找到4项 如何将数据帧中的数据写入单个文件(两个数据 帮助将不胜感激。
我如何一次加载5年的拼花数据并复制到一个表中?因为1个月的负荷比我1.5个小时,5年就要花我90个小时。如果有可能并行加载?我该怎么做呢? 谢谢
有没有人知道这样的特性、可能性或变通方法?谢谢!
关于雪花的新功能--推断模式表函数,我有一个问题。INFER模式函数在parquet文件上执行得很好,并返回正确的数据类型。但是,当parquet文件被分区并存储在S3中时,INFER模式的功能与pyspark Dataframes不同。 在DataFrames中,分区文件夹名称和值作为最后一列读取;在雪花推断模式中有没有一种方法可以达到同样的结果? 示例: 示例:{“AGMT_GID”:1714
我试图将parquet数据从AWS S3阶段移动到Snowflake中的表中,并不断得到数据类型错误。具体地说,无论我如何调整列,这个错误总是弹出 无法识别数值“|” null 我的代码如下: