2017-04-12 14 views
0

データソーステーブル(ブックのデータソースタブ)に計算フィールドを作成します。しかし、Tableauはフィールドに集計計算データが含まれていると不満を持ち、視覚化の詳細レベルに依存します。ここで(TabPy使用して)私のスクリプトです。この場合はTableauの[データソース]タブでSCRIPT_REALを使用

SCRIPT_REAL("import numpy as np 
return (2*np.array(_arg1)).tolist()", 
SUM([Wind Speed])) 

は、この計算されたフィールド内のすべての行がヌルとして示されています。私は次のようにSCRIPT_REALを交換する際に

しかし、それは動作します:まだ

2*SUM([Wind Speed]) 

、両方のケースでは、私はSUM [集計機能]を使用していますので、なぜそれがこのケースで動作しませんSCRIPT_REALを使用しているときは表示されません。

私がしたいのは、SCRIPT_REALを使って新しいフィールド(行単位)の値を計算し、それをデータテーブルに追加することです。私は何が欠けていますか?

+1

Script_Realはテーブル計算です。テーブル計算、特にパーティショニングとアドレッシングについてのマニュアルを読む –

+0

@AlexBlakemoreありがとうございます。パーティショニングとアドレッシングを正しく使用すると、データソースタブで作業することができますか? – Bey

+0

することができます。テーブルの計算はちょっと難しいかもしれません。正しい数式を得るだけでなく、もっと多くのノブがあります。これらの中で最も重要なのは、パーティショニングとアドレッシングの仕組みの理解です。それらのコンセプトに慣れればOKです。おかげさまで –

答えて

2

あなたのデータがどのように見えるのかわからないと、何が起こっているのかを言うのは難しいです。計算は有効です。この種の問題をデバッグする際に大いに役立つことができ

enter image description here

ことの一つは、あなたがコンソールでそれを調べることができるようにそれを返す前に、データを印刷することです。

SCRIPT_REAL(
"import numpy as np 
values = (2*np.array(_arg1)).tolist() 
print values 
return values" 
, 
SUM([Value]) 
) 

その後、TabPyを見て見ることができます。

INFO:__main__:{"INFO": "Initializing TabPy..."} 
INFO:__main__:{"INFO": "Done initializing TabPy."} 
INFO:__main__:{"INFO": "Web service listening on port 9004"} 
INFO:__main__:{"INFO": "function to evaluate=def _user_script(tabpy, _arg1):\n import numpy as np\n values = (2*np.array(_arg1)).tolist()\n print values\n return values\n"} 
[14, 20, 32, 44, 58, 52, 40, 66] 
INFO:tornado.access:200 POST /evaluate (172.17.0.1) 53.75ms 

だから計算が値を計算します:[14, 20, 32, 44, 58, 52, 40, 66]

アレックス・ブレイクモアは、これらの計算は、「表計算」しているとなり、前述のようにデフォルトで "テーブル"で計算されます。つまり、Tableauはビューのすべての値をTabPyに一度に渡します。基本的に、配列を渡し、配列を返します(上記の例のように)。 「計算する」設定を変更すると、データの分数、または各行を個別に渡すことができますが、一般に「テーブル」はすべてのデータをTabPyに一度に渡してからTabPyがすべての結果をアレイ。

=========================================

更新:「表計算」は、「ビュー」内のデータに対して実行されます。これは、可視化する対象を知る方法がないため、基礎となるデータで事前に計算することはできません。

enter image description here

基本的には、「表計算」はオンデマンドで実行され、短命である:あなたがデータ準備ペインで見てみる場合は、このことについてのメッセージが表示されます。値を保持したい場合は、標準計算を実行するか、データソースの値を事前計算することをお勧めします。 TabPyはこれらの一時的なタイプの計算に依存するため、データを探索するのには適していますが、データを保存するのには適していません。

+0

あなたが示したように、スクリプトは視覚化/チャートビューに適用されたときに正常に動作します。私の問題は、ソースデータタブの基になるデータテーブル(計算フィールドとして)に同じ正確なスクリプトを入力しようとするときに、Tableauが集計データを使用するため、視覚化に依存することを示しています。注:これはエラーではなく、計算されたフィールドを実際のビュー(単にまとめたチャートなど)で使用するまでスクリプトの実行を拒否します。つまり、スクリプトが「棚」(Tableau-speakを使用する)の一部であることが必要と思われるようです。 – Bey

+0

私のコメントがこの問題を明確にしてくれることを願っています。計算を棚に移動すると(一部のビジュアライゼーションで)、この正確な同じスクリプトに基づいて計算フィールドを使用して、基礎となるデータテーブル(データソースタブ内)を補強しようとすると動作しません。 – Bey

+1

私はあなたが意味することを理解しており、答えを更新します。 – emh

関連する問題