1

SnappyData v.0-5

私が抱えている問題は、JDBC 接続のテーブル メタデータと Pulse Web App が、以下で作成したテーブルを表示しないことです。

シェルと csv ファイルを使用して、SnappyData にテーブルを作成します。

データはこちら (roads.csv):

"roadId","name"
"1","Road 1"
"2","Road 2"
"3","Road 3"
"4","Road 4"
"5","Road 5"
"6","Road 6"
"7","Road 7"
"8","Road 8"
"9","Road 9"
"10","Road 10"

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

snappy>  CREATE TABLE STAGING_ROADS
(road_id string, name string)
USING com.databricks.spark.csv
OPTIONS(path '/home/ubuntu/data/example/roads.csv', header 'true');


snappy> select * from STAGING_ROADS

Returns 10 rows.

SnappyData JDBC 接続があります (DBVisualizer と SquirrelSQL は同じように表示されます)。メタデータの「TABLES」リストにそのテーブルが表示されません。ただし、「select * from STAGING_ROADS」を実行すると。

CLOB を含む 10 行を返しますが、これはまったく使用できません。

road_id  |      name
=====================
CLOB        CLOB
CLOB        CLOB
CLOB        CLOB
CLOB        CLOB
CLOB        CLOB
CLOB        CLOB
CLOB        CLOB
CLOB        CLOB
CLOB        CLOB
CLOB        CLOB

第 2 に、Pulse Web App は、snappy> シェルからテーブルを作成したときにテーブルを作成したことを登録しません。ただし、JDBC クライアントから CREATE TABLE コマンドを実行すると、問題なく表示されます。

私は何か間違ったことをしていますか?snappy> シェルで作成したテーブルに関するメタデータを取得して、JDBC と Pulse にも表示するにはどうすればよいですか?

4

2 に答える 2

1

Spark.csv がデータ ソースである SQL を使用してテーブルを作成することがテストされているとは思いませんでした。関連する JIRA を次に示します - https://jira.snappydata.io/browse/SNAP-416

Spark ジョブを使用してデータを並行してロードすることをお勧めしています。spark-shell を使用してこれを行うこともできます。

        stagingRoadsDataFrame = snappyContext.read
        .format("com.databricks.spark.csv") 
        .option("header", "true") // Use first line of all files as header
        .option("inferSchema", "true") // Automatically infer data types
        .load(someFile)
// Save Dataframe as a Row table
      stagingRoadsDatFrame.write.format("row").options(props).saveAsTable("staging_roads")

そうは言っても、試していただけますか(おそらくこれでうまくいくかもしれません)-

 CREATE TABLE STAGING_ROADS (road_id varchar(100), name varchar(500))

SQL のデータ型として「文字列」がないことに注意してください。デフォルトでは、最大長がわからないので、これを CLOB に変換します。この問題の解決にも取り組んでいます。

于 2016-07-26T00:31:37.653 に答える