小编Tod*_*kov的帖子

导入我的罐子来激发外壳

我有一个简单的 scala maven 模块,它是一个更大项目的一部分(我按照这里的描述创建了它:https : //www.jetbrains.com/help/idea/2016.2/creating-a-maven-module.html):

package com.myorg.simplr

import [...]

@SerialVersionUID(100L)
case class Simplr (){
    //class code
}
Run Code Online (Sandbox Code Playgroud)

我试图在 spark shell 中使用这个类,所以我构建了一个 jar 文件“simplr-1.0.jar”并使用 --jars simplr-1.0.jar 启动了 spark shell。

然后,当我尝试导入时,我得到以下信息

scala> import com.myorg.simplr.Simplr
<console>:25: error: object myorg is not a member of package com
         import com.myorg.simplr.Simplr
                    ^
Run Code Online (Sandbox Code Playgroud)

我怎样才能使导入工作?

我使用 maven 构建,这是我的 pom.xml:

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <parent>
        <artifactId>my-parent-project</artifactId>
        <groupId>com.myorg</groupId>
        <version>1.0</version>
    </parent>
    <modelVersion>4.0.0</modelVersion>

    <artifactId>simplr</artifactId>
    <version>1.0</version>

    <dependencies>
        <dependency>
            <groupId>org.apache.spark</groupId>
            <artifactId>spark-sql_2.10</artifactId>
            <version>1.6.0</version>
            <scope>provided</scope>
        </dependency>

        <dependency>
            <groupId>org.apache.spark</groupId>
            <artifactId>spark-mllib_2.10</artifactId> …
Run Code Online (Sandbox Code Playgroud)

java scala maven apache-spark

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

可以使用const引用或复制参数的函数的函数指针

我有多个函数可以在一些自定义容器(或std :: vector)上工作:

template <class T> void op1(const My_container<T> &a) { /* do something */ }
template <class T> void op2(My_container<T> a) { /* do something */ }
Run Code Online (Sandbox Code Playgroud)

现在,我想要另一个功能

template <class T> void apply_op(const My_container<T> &a, void (*op)(My_container<T>)) {
    op(a);
}
Run Code Online (Sandbox Code Playgroud)

但是,我希望apply_op能够同时使用op1和op2.

我想我可以复制两次.但是如果操作具有更多参数,并且任一参数可以是通过值或通过const引用,则副本的数量将非常快地变得非常大.另一种方法是编写所有函数来获取const引用并在必要时将它们复制到内部,但这涉及重写所有的op函数.

但有没有办法(模板,也许?)让apply_op适用于这两种操作?

c++

0
推荐指数
1
解决办法
69
查看次数

标签 统计

apache-spark ×1

c++ ×1

java ×1

maven ×1

scala ×1