小编ftw*_*ftw的帖子

HDFS文件比较

我怎么能比较两个HDFS文件,因为没有diff

我正在考虑使用Hive表并从HDFS加载数据,然后在2个表上使用join语句.有没有更好的方法?

hadoop hive hdfs

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

在Python脚本中使用shell变量不起作用

我有一个shell脚本,其中某些参数设置如下:
k.sh:

export var="value"
export val2="value2"
Run Code Online (Sandbox Code Playgroud)

然后我有一个python脚本,我调用shell脚本,并希望使用这些环境变量
ex1.py:

import subprocess
import os
subprocess.call("source k.sh",shell=True)
print os.environ["var"]
Run Code Online (Sandbox Code Playgroud)

但我得到一个KeyError
如何在我的Python脚本中使用这些shell变量?

python linux shell

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

Spark DataFrame

当我在spark-shell(1.6版本)上查询数据帧时,列名称不区分大小写.在Spark-Shell上

 val a = sqlContext.read.parquet("<my-location>")
   a.filter($"name" <=> "andrew").count()
   a.filter($"NamE" <=> "andrew").count()
Run Code Online (Sandbox Code Playgroud)

以上结果都给了我正确的数量.但是当我在jar中构建它并通过"spark-submit"运行时,下面的代码失败,说NamE不存在,因为底层镶木地板数据用列保存为"名称"

失败:

a.filter($"NamE" <=> "andrew").count()
Run Code Online (Sandbox Code Playgroud)

通过:

a.filter($"name" <=> "andrew").count()
Run Code Online (Sandbox Code Playgroud)

我在这里遗漏了什么吗?有没有办法可以让它不区分大小写.我知道我可以在过滤之前使用select并将所有列作为小写别名,但是想知道它为什么表现不同.

apache-spark spark-dataframe

4
推荐指数
3
解决办法
3086
查看次数

List上的Haskell模式匹配

我知道我们可以在Haskell中使用下面的模式匹配:

sum :: (Num a) => [a] -> a  
sum [] = 0  
sum (x:xs) = x + sum xs 
Run Code Online (Sandbox Code Playgroud)

但为什么我们不能使用[x] ++ xs

sum :: (Num a) => [a] -> a  
sum [] = 0  
sum ([x] ++ xs) = x + sum xs
Run Code Online (Sandbox Code Playgroud)

haskell

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

python中的属性方法

有人可以解释我这种行为,为什么1)在2)和3)工作时不起作用

1)

class bm(object):
    def __init__(self,val):
        self.a=val
    def get(self):
        return self.a
    def set(self,val):
        self.a=val
        a=property(get,set)


In [43]: ob1=bm('vin')
Run Code Online (Sandbox Code Playgroud)

给我递归错误,而下面的代码工作正常

2)

class bm(object):
    def __init__(self,val):
        self._a=val
    def get(self):
        return self._a
    def set(self,val):
        self._a=val
        a=property(get,set)


In [43]: ob1=bm('vin')
Run Code Online (Sandbox Code Playgroud)

工作正常.我可以访问ob.a并执行ob.a =''

即使这样也可以

3)

class bm(object):
    def __init__(self,val):
        self.a=val
    def get(self):
        return self._a
    def set(self,val):
        self._a=val
        a=property(get,set)

In [43]: ob1=bm('vin')
Run Code Online (Sandbox Code Playgroud)

工作正常.我可以访问ob.a并执行ob.a =''

python

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

标签 统计

python ×2

apache-spark ×1

hadoop ×1

haskell ×1

hdfs ×1

hive ×1

linux ×1

shell ×1

spark-dataframe ×1