我当前正在使用具有字符串数据类型作为键和变量值的映射。我依赖boost :: variant库来定义地图数据类型。我目前正在关注关于boost :: variant的一些教程,该教程用于从映射中提取值,而不必指定要在迭代过程中检索的确切数据类型值。 来源:https://theboostcpplibraries.com/boost.variant 我想要类似上一示例的通用数据类型的示例,但不是打印值而是返回它们。 以下似乎无法正常工作。
struct output : public boost::static_visitor<>
{
template <typename T>
T operator()(T t) const { return t }
};
我还实例化了一个映射,同时使用字符串数据类型作为键并使用boost :: variant类型作为值来填充它;然后遍历地图并处理值。
std::map<std::string,boost::variant<int, double, long long, std::string>> _keyPairValue;
for(auto &x: _keyPairValue)
{
// appending a key pair value to a bson object which is part of mongo sdk
b << x.first << boost::apply_visitor(output{},x.second);
}
答案 0 :(得分:1)
我想要类似上一示例的通用数据类型,但不是打印值而是返回它们。
您可能想让import org.apache.spark.sql.expressions.Window
val w = Window.partitionBy($"sess").orderBy($"timestamp")
val df1 = df.withColumn("lagged", lag($"id", 1).over(w))
df1.select("id", "lagged").groupBy($"id").agg(collect_list($"lagged").as("id_list")).show
//+---+--------------------+
//| id| id_list|
//+---+--------------------+
//| tt| [yy]|
//| xx| []|
//| zz| []|
//| yy| [zz, xx]|
//+---+--------------------+
重载,例如:
operator()