小编pro*_*lad的帖子

Spark:如何使用Scala或Java用户定义函数映射Python?

比方说,我的团队选择Python作为Spark开发的参考语言.但是后来由于性能原因,我们希望开发特定的Scala或Java特定的库,以便使用我们的Python代码(类似于使用Scala或Java骨架的Python存根)进行映射.

难道您不认为是否可以将新的自定义Python方法与一些Scala或Java用户定义函数联系起来?

python java scala apache-spark pyspark

21
推荐指数
1
解决办法
1万
查看次数

Hive:如何分解嵌入在 CSV 文件中的 JSON 列?

从 CSV 文件(带有标题和管道分隔符)我得到了以下两个内容,其中包含一个 JSON 列(里面有一个集合),如下所示:

第一种情况(使用没有名称的 JSON 集合):

ProductId|IngestTime|ProductOrders
9180|20171025145034|[{"OrderId":"299","Location":"NY"},{"OrderId":"499","Location":"LA"}]
8251|20171026114034|[{"OrderId":"1799","Location":"London"}]
Run Code Online (Sandbox Code Playgroud)

第二种情况(使用名为“Orders”的 JSON 集合):

ProductId|IngestTime|ProductOrders
9180|20171025145034|{"Orders":[{"OrderId":"299","Location":"NY"},{"OrderId":"499","Location":"LA"}]}
8251|20171026114034|{"Orders":[{"OrderId":"1799","Location":"London"}]}
Run Code Online (Sandbox Code Playgroud)

首先,我像这样创建我的“原始”表:

DROP TABLE IF EXISTS Product;
CREATE EXTERNAL TABLE Product (
  ProductId STRING,
  IngestTime STRING,
  ProductOrders STRING
)
COMMENT "Product raw table"
ROW FORMAT DELIMITED
FIELDS TERMINATED BY '\|'
STORED AS TEXTFILE
LOCATION
  '/data/product'
TBLPROPERTIES ("skip.header.line.count"="1");
Run Code Online (Sandbox Code Playgroud)

当我查询我的表时:

SELECT * FROM Product
Run Code Online (Sandbox Code Playgroud)

我有以下答案:

第一种情况(使用没有名称的 JSON 集合):

ProductId  IngestTime      ProductOrders
9180       20171025145034  [{"OrderId":"299","Location":"NY"},{"OrderId":"499","Location":"LA"}]
8251       20171026114034  [{"OrderId":"1799","Location":"London"}]
Run Code Online (Sandbox Code Playgroud)

第二种情况(使用名为“Orders”的 JSON 集合):

ProductId  IngestTime      ProductOrders
9180       20171025145034  {"Orders":[{"OrderId":"299","Location":"NY"},{"OrderId":"499","Location":"LA"}]} …
Run Code Online (Sandbox Code Playgroud)

csv json hadoop hive explode

6
推荐指数
1
解决办法
1053
查看次数

蜂巢:如何爆炸带有数组的JSON列,并嵌入到CSV文件中?

从CSV文件(带有标头和管道定界符)中,我获得了以下内容,其中包含JSON列(内部带有集合),如下所示:

ProductId|IngestTime|ProductOrders
9180|20171025145034|[{"OrderId":"299","Location":"NY"},{"OrderId":"499","Location":"LA"}]
8251|20171026114034|[{"OrderId":"1799","Location":"London"}]
Run Code Online (Sandbox Code Playgroud)

我需要创建一个返回以下内容的SELECT Hive查询:

ProductId  IngestTime      OrderId        OrderLocation
9180       20171025145034  299            NY
9180       20171025145034  499            LA
8251       20171026114034  1799           London
Run Code Online (Sandbox Code Playgroud)

到目前为止,我通过使用'explode','get_json_object'等尝试了许多组合,但是我仍然没有找到正确的SQL查询。

你有解决办法吗?

非常感谢你的帮助 :-)

csv json hadoop hive explode

5
推荐指数
1
解决办法
822
查看次数

标签 统计

csv ×2

explode ×2

hadoop ×2

hive ×2

json ×2

apache-spark ×1

java ×1

pyspark ×1

python ×1

scala ×1