2017-06-28 7 views
0

私は、各行が同じ構造のJsonである、約1000の行を持つハイブテーブルの列(Json_String String)を持っています。我々はJSONと同じようにデータフレームの内のすべての行を読むためのどのような方法がある私はJSON文字列で列を含むハイブテーブルを読み取る方法は?

val df = sqlContext.read.json("select Json_String from json_table") 

以下のようにデータフレームの中にJSONを読み込むしようとしていますが、それは以下の例外

java.io.IOException: No input paths specified in job 

を投げていますワイルドカードを使用してファイルを

val df = sqlContext.read.json("file:///home/*.json") 

答えて

1

私はあなたがいつものようにハイブテーブルを読み、from_json機能を使用してJSON列を変換するためにされて求めているものだと思います。

from_json(E:カラム、スキーマ:StructType):カラムが指定されたスキーマとStructTypeにJSON文字列を含む列を解析。解析できない文字列の場合はnullを返します。あなたのコードでsqlContextを使っ考える

、私はあなたがして(2.1.0で追加されました)from_jsonを提供していないスパーク< 2.1.0を使用することを恐れています。

解決策は、独自のユーザー定義関数(UDF)を使用して自分で解析することです。

ヴァルDF = sqlContext.read.json( "json_tableからJson_Stringを選択")

上記jsonオペレータがディスク上のJSONファイルへのパスまたは経路を期待するためではないように(動作しませんHiveテーブルに対してクエリを実行した結果)。

JSON(パス:文字列*):DATAFRAMEはJSONファイル(JSON行のテキスト形式または改行で区切られたJSON)をロードし、データフレームとして結果を返します。

関連する問題