小编che*_*aux的帖子

在Spark SQL中连接两个DataFrame并仅选择一个列

我在Spark SQL中有两个DataFrame(D1和D2).

我试图内部加入它们D1.join(D2, "some column") 并获取仅D1的数据,而不是完整的数据集.

D1和D2都具有相同的列.

有人可以帮我这个吗?

我正在使用Spark 1.6.

scala apache-spark apache-spark-sql

15
推荐指数
3
解决办法
3万
查看次数

从hive表中读取并使用spark sql写回来

我正在使用Spark SQL读取Hive表并将其分配给scala val

val x = sqlContext.sql("select * from some_table")
Run Code Online (Sandbox Code Playgroud)

然后我正在使用数据帧x进行一些处理,最后得到一个数据帧y,它具有与表some_table一样的精确模式.

最后,我试图将y数据帧覆盖到同一个hive表some_table

y.write.mode(SaveMode.Overwrite).saveAsTable().insertInto("some_table")
Run Code Online (Sandbox Code Playgroud)

然后我收到错误

org.apache.spark.sql.AnalysisException:无法将覆盖插入到也从中读取的表中

我尝试创建一个insert sql语句并使用sqlContext.sql()触发它,但它也给了我同样的错误.

有什么办法可以绕过这个错误吗?我需要将记录插回到同一个表中.


嗨,我尝试按照建议做,但仍然得到相同的错误.

val x = sqlContext.sql("select * from incremental.test2")
val y = x.limit(5)
y.registerTempTable("temp_table")
val dy = sqlContext.table("temp_table")
dy.write.mode("overwrite").insertInto("incremental.test2")

scala> dy.write.mode("overwrite").insertInto("incremental.test2")
             org.apache.spark.sql.AnalysisException: Cannot insert overwrite into table that is also being read from.;
Run Code Online (Sandbox Code Playgroud)

hadoop scala apache-spark apache-spark-sql spark-dataframe

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

python - sys.argv和标识标识

当我接受参数时,如何在没有复合条件的情况下检查两个是否同时出现

#!/usr/bin/python
import random, string
import mymodule
import sys

z = ' '.join(sys.argv[2:])
q = ''.join(sys.argv[3:])
a = ''.join(sys.argv[2:])
s = ' '.join(sys.argv[1:])
flags = sys.argv[1:5]

commands = [["-r", "reverse string passed next with no quotes needed."], ["-j", "joins arguments passed into string. no quotes needed."], ["--palindrome", "tests whether arguments passed are palindrome or not. collective."],["--rand","passes random string of 10 digits/letters"]]

try:
    if "-r" in flags:
        if "-j" in flags:
            print mymodule.reverse(q)
        if not "-j" in flags:
            print mymodule.reverse(z) …
Run Code Online (Sandbox Code Playgroud)

python arguments sys

4
推荐指数
2
解决办法
4227
查看次数

GetFile处理器在Apache NiFi中持续运行

我正在使用Apache NiFi将一些本地文件复制到HDFS.我创建了一个GetFile绑定到PutHDFS处理器的处理器.该GetFile处理器递归查询一个只读的目录.我遇到的问题是文件不断被复制,例如,如果我删除HDFS上复制的文件,那么它们很快就会重新出现.

GetFile处理器配置中,我设置Keep Source Filetrue,因为该目录是只读的,并且在只读目录中的文档中指定,如果此参数设置为false,则文件将被忽略:

如果为true,则在将文件复制到Content Repository后不会删除该文件; 这会导致文件不断被拾取并且对于测试目的很有用.如果不保持原始NiFi将需要对其正在拉动的目录的写权限,否则它将忽略该文件.

是否可以简单地复制每个文件一次?

apache-nifi

4
推荐指数
1
解决办法
1996
查看次数

并行 kinit 调用导致 Kerberos 缓存损坏

如果我尝试并行多次使用 Kerberos 密钥表进行身份验证,我会随机收到错误消息,指出凭据缓存已损坏。

我可以用以下脚本重现这个问题。但是,在我的实际用例中,有多个进程同时调用kinit,我无法控制它们:

kdestroy
kinit $USER@$REALM -k -t $HOME/$USER.keytab && echo "OK" &
kinit $USER@$REALM -k -t $HOME/$USER.keytab && echo "OK" &
kinit $USER@$REALM -k -t $HOME/$USER.keytab && echo "OK" &
kinit $USER@$REALM -k -t $HOME/$USER.keytab && echo "OK" &
kinit $USER@$REALM -k -t $HOME/$USER.keytab && echo "OK"
Run Code Online (Sandbox Code Playgroud)

每次运行时都会产生随机输出。此类输出的示例如下:

kinit: Failed to store credentials: Internal credentials cache error (filename: /tmp/krb5cc_1645005342) while getting initial credentials
kinit: Failed to store credentials: No credentials cache found (filename: /tmp/krb5cc_1645005342) while getting …
Run Code Online (Sandbox Code Playgroud)

kerberos

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

显示斯坦福NER的置信度

我正在使用斯坦福NER CRFC分类器从新闻文章中提取命名实体,为了实现主动学习,我想知道每个标记实体的类的置信度分数.

显示的例子:

位置(0.20)人(0.10)组织(0.60)MISC(0.10)

这是我从文本中提取命名实体的代码:

AbstractSequenceClassifier<CoreLabel> classifier = CRFClassifier.getClassifierNoExceptions(classifier_path);
String annnotatedText = classifier.classifyWithInlineXML(text);
Run Code Online (Sandbox Code Playgroud)

是否有解决方法来获取值和注释?

java named-entity-recognition stanford-nlp

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

HIVE:无法识别“不同”“(”附近的输入

我正在尝试在 Hive 中执行以下查询:

SELECT
  regexp_replace('2016-08-05_11:29:46', '\\_', ' ') as tmstmp,
  distinct(P.name)
FROM table P;
Run Code Online (Sandbox Code Playgroud)

它抛出一个异常,说无法识别选择目标中“不同”“(”“P”附近的输入。

当我运行交换列的查询时,如下所示:

SELECT
  distinct(P.name),
  regexp_replace('2016-08-05_11:29:46', '\\_', ' ') as tmstmp
FROM table P;
Run Code Online (Sandbox Code Playgroud)

效果很好。对这个问题有什么想法吗?

hive

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

将 Stringtype 转换为 ArrayType

是否可以将 StringType 列转换为 spark 数据框中的 ArrayType 列?

df.printSchema() 给这个

架构 ->
a: string(nullable= true)

现在我想将其转换为

a:数组(可为空=真)

scala apache-spark

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

意外输出NULL

我正在使用继承和多态.我只获得此输出而不是显示所需的点.

但仅打印点才能正常工作.印刷线会产生问题.

输出:连接null null的行

package serial;

import java.io.*;

class Point
{
    private int x,y;
    Point(int x,int y)
    {
        this.x = x;
        this.y = y;
    }
    int getX()
    {
        return x;
    }
    int getY()
    {
        return y;
    }
    void setX(int x)
    {
        this.x = x;
    }
    void setY(int y)
    {
        this.y = y;
    }
    public String toString()
    {

        //String s = "Points joining line are ("+p1.getX()+","+p1.getY()+") and ("+p2.getX()+","+p2.getY()+")";     
        return "(" + x + "," + y + ")"; 
    }
} …
Run Code Online (Sandbox Code Playgroud)

java polymorphism inheritance

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