問題タブ [hive-udf]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
4222 参照

hive - Hive カスタム UDF の JAR を追加して、HDInsight クラスターで永続的に使用できるようにする方法を教えてください。

Hive でカスタム UDF を作成しました。Hive コマンド ラインでテストされ、正常に動作します。これで、UDF の jar ファイルができました。ユーザーがそれを指す一時関数を作成できるようにするには、どうすればよいでしょうか? 理想的には、Hive のコマンド プロンプトから次のようにします。

この後、機能を適切に使用できるようになりました。

しかし、関数を実行するたびにjarを追加したくありません。この関数を実行できるはずです:-

  1. Visual Studio から HDInsight クラスターに対して Hive クエリを実行する
  2. コマンド ラインから SSH (Linux) または RDP/cmd (Windows) を介して Hive クエリを実行する
  3. Ambari (Linux) Hive ビューからの Hive クエリの実行
  4. HDinsight クエリ コンソール Hive エディター (Windows クラスター) からの Hive クエリの実行

したがって、どのようにクエリを実行しても、JAR は既に利用可能であり、パスに追加されている必要があります。Linux クラスターと Windows クラスターでこれを保証するプロセスは何ですか?

0 投票する
2 に答える
358 参照

hive-udf - 特定の列を切り捨てるためのハイブUDFコードを提供してもらえますか?

double 値 42.2223 を含む列があります。この特定の列の下 4 桁を切り捨てたいと考えています。

この特定のシナリオにハイブ UDF を提供してもらえますか?

0 投票する
1 に答える
1515 参照

hadoop - Hive での CROSS APPLY SQL Server クエリ

Ambari 2.4.0.1 を使用した HDP-2.5.0.0

Hive テーブルの ReportSetting は次のとおりです。

列 'serializedreportsetting' は、ソース SQL Server db の XML データ型ですが、Sqoop インポート中に文字列に変換されます。これは、SQL Server でどのように見えるかです。

ハイブ テーブル:

SQL Server で正常に動作するクエリ:

私は次のことを考えたり実行したりできます:

  1. CROSS APPLY を使用するには、横方向のビューを使用する必要があると思います。ここでは serializedreportsetting を配列​​として持っていないため、explode() は機能しません。私が正しい方向に考えているかどうか誰かが検証できますか
  2. 組み込みの xpath udfを使用して serializedreportsetting のデータを列として取得しようとしただけですが、レコードを取得できません。次のような試行はほとんどありません。

    ReportSetting limit 1 から xpath(SerializedReportSetting,'/*') を選択します。

    ReportSetting limit 1 から xpath(SerializedReportSetting,'/ReportSettings4') を選択します。

    ReportSetting limit 1 から xpath(SerializedReportSetting,'/Trigger/Manual') を選択します。

**********更新-1************

上記の課題を処理するために regexp_replace を使用しました。

0 投票する
1 に答える
1104 参照

xpath - HiveUDF + saxon 9.1.0.8 + Java8 = XPathFactory の作成に失敗しました

コードでUDFが定義されていない限り、HiveContextとSaxonを使用したSparkジョブは正常に動作します。UDF 実装の場合 - HiveContext の初期化がエラーで失敗しました。saxon 9.5.1.5 で解決された saxon\java8 の非互換性があると聞きましたが、これは中央の Maven リポジトリで無料バージョンとしてまだリリースされていません。

原因: java.lang.RuntimeException: XPathFactory#newInstance() は、デフォルト オブジェクト モデルの XPathFactory を作成できませんでした: http://java.sun.com/jaxp/xpath/domXPathFactoryConfigurationException の場合: javax.xml.xpath.XPathFactoryConfigurationException: java.util.ServiceConfigurationError: javax.xml.xpath.XPathFactory: jar:file:/JBOD_D19/hadoop/cdh/yarn/nm/usercache/u23120d1/appcache/application_1477998759081_5017/container_e45_1477998759087_001_150 /saxon-xpath-9.1.0.8.jar!/META-INF/services/javax.xml.xpath.XPathFactory:2: javax.xml.xpath.XPathFactory.newInstance(XPathFactory.java:102) での設定ファイルの構文が正しくありませんorg.apache.hadoop.hive.ql.udf.xml.UDFXPathUtil.(UDFXPathUtil.java:41) で org.apache.hadoop.hive.ql.udf.xml.GenericUDFXPath.(GenericUDFXPath.java:53) で

0 投票する
1 に答える
4588 参照

apache-spark - 複数の double データ型列の spark SQL で中央値を見つける

複数の double データ型列の中央値を見つける必要があります。正しいアプローチを見つけるための提案をリクエストしてください。

以下は、1 列のサンプル データセットです。サンプルの中央値が 1 として返されることを期待しています。

次のオプションを試しました

1) Hive UDAF パーセンタイル。BigInt でのみ機能しました。

2) Hive UDAT percentile_approx ですが、期待どおりに動作しません (0.25 対 1 を返します)。

sqlContext.sql("select percentile_approx(num,0.5) from test").show();

3) Spark ウィンドウ関数 percent_rank - 中央値を見つける方法は、0.5 を超えるすべての percent_rank を探し、最大 percent_rank の対応する num 値を選択することです。しかし、特にレコード数が偶数の場合、すべての場合に機能するとは限りません。そのような場合、中央値はソートされた分布の中央値の平均です。

また、percent_rank では、複数の列の中央値を見つける必要があるため、異なるデータフレームで計算する必要がありますが、これは私にとっては少し複雑な方法です。私の理解が正しくない場合は、修正してください。