【发布时间】:2017-08-10 07:38:51
【问题描述】:
我是spark/scala 世界的新手。我有两个数据来源
具有 URL 和主机名的流量数据
定义流量 url 规则的属性数据。规则是匹配域名的正则表达式模式。一个属性 ID 可能有一个或多个规则。
如果一个 URL 符合条件,我必须分配一个属性 ID。流量中的每一行都可以匹配零个或多个属性条件
样本输入
traffic-data
visitor_id | url
1000-abc10 | www.motor.com/index.html
2000-fe30a | www.lifestyle.com/cooking/pasta.html
`属性数据
attribute_id | rule | describtion
101 | motor.com, auto*.com, vehicles.com | "vehicles"
102 | motor.com | "auto site"
预期输出:
visitor_id | attribute_id
1000-abc10 | 101
1000-abc10 | 202
我尝试了以下方法:
val traffic_df = spark.read.parquet(<traffic-path>).as[Traffic]
val attribute_df = spark.read.parquet(<attribute-path>).as[Attribute]
traffic_df.map(row => attribute_df.map(r => TrafficAttribute(row.visitor_id, r.attribute_id)))
【问题讨论】:
-
您应该添加输入示例、您想要的输出以及您的代码无法使用的输出
-
我已经按照建议添加了输入和输出。
-
我可以为我发布的问题找到解决方案。为了完成循环,我在这里发布了下面对我有用的代码 sn-p。
标签: scala apache-spark apache-spark-sql