私はハイブを使用したいと考えています。他のテーブルからハイブカラムを散布してハイブ構造体のカラムに挿入します
- 表Aは、構造体1の列を有する。
- 表Aの構造列を分割し、2つの異なる列としてロードするために表Bを作成します。
以下はDDLと私が試した手順です。
表A:
デシリアライザスキーマ列から
クラスタ列
デシリアライザテーブル列から
デシリアライザトランケートから
デシリアライザ削除ブールから
デシリアライザデータ構造体から
デシリアライザ主キー構造体からデシリアライザのブール値
私は次のことを試みた
デシリアライザshippingattr構造体 billingattr構造体
から USER_ID列:
デシリアライザ表BからバージョンBIGINT。
insert into Table B
(
user_id,
shippingattr.username,
shippingattr.shipping_fname,
shippingattr.shipping_lname,
shippingattr.shipping_address,
shippingattr.shipping_address2,
shippingattr.shipping_city,
shippingattr.shipping_state,
shippingattr.shipping_zip,
shippingattr.phone,
billingattr.billing_is_shipping,
billingattr.billing_fname,
billingattr.billing_lname,
billingattr.billing_address,
billingattr.billing_address2,
billingattr.billing_city,
billingattr.billing_state,
billingattr.billing_zip
)
select
primarykey.user_id,
data.username,
data.shipping_fname,
data.shipping_lname,
data.shipping_address,
data.shipping_address2,
data.shipping_city,
data.shipping_state,
data.shipping_zip,
data.phone,
data.billing_is_shipping,
data.billing_fname,
data.billing_lname,
data.billing_address,
data.billing_address2,
data.billing_city,
data.billing_state,
data.billing_zip
from Table A;
このエラーは、このデータを挿入する正しい方法を教えてください。
エラーメッセージ: NoViableAltException(284 [] @)org.apache.hadoop.hiveでorg.apache.hadoop.hive.ql.parse.HiveParser_SelectClauseParser.selectClause(HiveParser_SelectClauseParser.java:742) で .com.parse.HiveParser.selectClause(HiveParser.java:40147) at org.apache.hadoop.hive.ql.parse.HiveParser.singleSelectStatement(HiveParser.java:38048) at org.apache.hadoop.hive.ql .parse.HiveParser.selectStatement(HiveParser.java:37754) at org.apache.hadoop.hive.ql.parse.HiveParser.regularBody(HiveParser.java:37654) at org.apache.hadoop.hive.ql.parse .HiveParser.queryStatementExpressionBody(HivePars (HiveParser.java:36774) at org.apache.hadoop.hive.ql.parse.HiveParser.queryStatementExpression(HiveParser.java:36774) at org.apache.hadoop.hive.ql.parse.HiveParser.execStatement(HiveParser。 java:1338) at org.apache.hadoop.hive.ql.parse.HiveParser.statement(HiveParser.java:1036) at org.apache.hadoop.hive.ql.parse.ParseDriver.parse(ParseDriver.java: 199) at org.apache.hadoop.hive.ql.parse.ParseDriver.parse(ParseDriver.java:166) at org.apache.hadoop.hive.ql.Driver.compile(Driver.java:404) at org.apache.hadoop.hive.ql.Driver.compile(Driver.java:322) at org.apache.hadoop.hive.ql.Driver.compileInternal(Driver.java:975) at org.apache.hadoop。 hive.ql.Driver.runInternal(Driver.java:1040) at org.apache.hadoop.hive.ql.Driver.run(Driver.java:911) at org.apache.hadoop.hive.ql.Driver.run(Driver.java:901) at org.apache。 hadoop.hive.cli.CliDriver.processLocalCmd(CliDriver。java:275) at org.apache.hadoop.hive.cli.CliDriver.processCmd(CliDriver.java:227) at org.apache.hadoop.hive.cli.CliDriver.processLine(CliDriver.java:430) at org.apache.hadoop.hive.cli.CliDriver.executeDriver(CliDriver.java:803) at org.apache.hadoop.hive.cli.CliDriver.run(CliDriver.java:697) at org.apache.hadoop。 hive.cli.CliDriver.main sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)でsun.reflect.NativeMethodAccessorImpl.invoke0(ネイティブメソッド) で(CliDriver.java:636) sun.reflect.DelegatingMethodAccessorImplで.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:606) at org.apache.hadoop.util.Run Jar.main(RunJar.java:212) FAILED:ParseException行1:50は '(' 'user_id' '、選択句で)入力を認識できません
は私たちにエラーを示しています。 – strugee
@strugee、エラーメッセージとともに更新されました。これが構造体データ型に挿入する正しい方法であるかどうかは不明です。 –