小编use*_*013的帖子

如何在python中枚举OrderedDict

所以,我是一个正在尝试学习 python 的 php 程序员。我有一个我想要排序的 dict 字典。我把它们变成了 OrderedDict。他们排序完美,原始字典看起来像这样。这只是一个 3 维数组,对吗?

a["01/01/2001"]["un"]=1
a["01/01/2001"]["nn"]=1
a["01/02/2001"]["aa"]=2
a["01/02/2001"]["bb"]=2
a["01/03/2001"]["zz"]=3
a["01/03/2001"]["rr"]=3
Run Code Online (Sandbox Code Playgroud)

我可以将它们转换为 OrderedDict,并希望以以下格式呈现它们

"01/01/2001" un=1 nn=1
"01/02/2001" aa=2 bb=2
"01/03/2001" zz=3 rr=3
Run Code Online (Sandbox Code Playgroud)

我可以在 php 中编写一个简单的循环来遍历这个关联数组,但我不知道如何在 python 中做到这一点。有人可以帮忙吗?

python ordereddictionary python-2.7

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

python中for循环之前可以有什么样的语句

我在 python 中看到这样的代码

x = [[0] * 2 for i in range(2)]
Run Code Online (Sandbox Code Playgroud)

这会产生一个二维数组的数组。x 的值为

[[0, 0], [0, 0]]
Run Code Online (Sandbox Code Playgroud)

我的问题是我们可以在for循环前面放什么样的语句?我不太明白如何使用这个。python 中这种用法有名字吗?这是一个好的做法(pythonic)吗?

python

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

使用scala将Spark处理的结果转储到HDFS

在使用spark处理数据后,我找到了将数据保存到HDFS的正确方法,我感到有点困惑.

这就是我想要做的.我正在计算数字字段的最小值,最大值和标准差.我的输入文件有数百万行,但输出只有大约15-20个字段.因此,输出是每个字段的单个值(标量).

例如:我将FIELD1的所有行加载到RDD中,最后,我将获得FIELD 1的3个单值(MIN,MAX,SD).我将这三个值连接成临时字符串.最后,我将有15到20行,包含以下格式的4列

FIELD_NAME_1  MIN  MAX  SD
FIELD_NAME_2  MIN  MAX  SD
Run Code Online (Sandbox Code Playgroud)

这是代码的片段:

//create rdd
val data = sc.textFile("hdfs://x.x.x.x/"+args(1)).cache()
//just get the first column
val values = data.map(_.split(",",-1)(1))

val data_double= values.map(x=>if(x==""){0}else{x}.toDouble)
val min_value= data_double.map((_,1)).reduceByKey((_+_)).sortByKey(true).take(1)(0)._1
val max_value= data_double.map((_,1)).reduceByKey((_+_)).sortByKey(false).take(1)(0)._1
val SD = data_double.stdev
Run Code Online (Sandbox Code Playgroud)

所以,我有3个变量,min_value,max_value和SD,我想存储回hdfs.

问题1:由于输出相当小,我是否只在本地保存在服务器上?或者我应该将其转储到HDFS.在我看来就像在本地转储文件更有意义.

问题2:在spark中,我可以调用以下命令将RDD保存到文本文件中

some_RDD.saveAsTextFile("hdfs://namenode/path")
Run Code Online (Sandbox Code Playgroud)

如何在scala中不是RDD的String变量中完成相同的操作?我应该首先将我的结果并行化为RDD,然后调用saveAsTextFile吗?

hadoop scala hdfs apache-spark

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

在gephi的概述窗格中移动图形

我是gephi的新手,似乎找不到合适的关键词来搜索。抱歉,如果这是某处的交叉发布。

当我进入概览窗口并放大以查看我的图形时,在屏幕上看不到要放大显示的图形的某些部分。我希望能够拖动该图,以便可以放大后看到它。这似乎很简单,但是我不知道该怎么做。我尝试了“在图上居中”按钮,但它缩小了图并在屏幕上居中。我尝试了直接拖动工具,但似乎没有任何作用。如何做到这一点?

例如,看一下屏幕截图。我想将节点拖到左上角,以便可以看到节点连接到的节点。

在此处输入图片说明

gephi

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

在pyspark中展平结构数组

我有一个使用 spark-xml 包转换为数据帧的 XML 文件。数据框具有以下结构:

root
 |-- results: struct (nullable = true)
 |    |-- result: struct (nullable = true)
 |    |    |-- categories: struct (nullable = true)
 |    |    |    |-- category: array (nullable = true)
 |    |    |    |    |-- element: struct (containsNull = true)
 |    |    |    |    |    |-- value: string (nullable = true)
Run Code Online (Sandbox Code Playgroud)

如果我选择类别列(可能在类别下多次出现):

df.select((col('results.result.categories.category')).alias("result_categories"))
Run Code Online (Sandbox Code Playgroud)

对于一个记录,结果看起来像

[[result1], [result2]]
Run Code Online (Sandbox Code Playgroud)

我试图压平结果:

[result1, result2]
Run Code Online (Sandbox Code Playgroud)

当我使用 flatten 函数时,我收到一条错误消息:

df.select(flatten(col('results.result.categories.category')).alias("Hits_Category"))
 cannot resolve 'flatten(`results`.`result`.`categories`.`category`)' due to data type mismatch: The argument should …
Run Code Online (Sandbox Code Playgroud)

apache-spark apache-spark-sql pyspark pyspark-dataframes

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