小编Alb*_*nto的帖子

如何为C中的枚举赋值?

我有一个enum和这样的struct定义:

typedef enum
{
   MONDAY = 1,
   TUESDAY,
   WEDNESDAY
} ThreeDays;

typedef struct
{
   int hello;
   ThreeDays day;
} Weekday;

static Weekday weekday = { 1, 2};
Run Code Online (Sandbox Code Playgroud)

然后我在lint中得到以下错误:

Error 64: Type mismatch (initialization) (int/enum)
Run Code Online (Sandbox Code Playgroud)

这个错误的原因是什么?我该如何纠正?

c enums struct lint

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

使用Python的Spark:将RDD输出保存到文本文件中

我正在使用python尝试使用spark计算单词计数问题.但是当我尝试使用.saveAsTextFile命令将输出RDD保存在文本文件中时,我遇到了问题.这是我的代码.请帮我.我被卡住了.感谢您的时间.

import re

from pyspark import SparkConf , SparkContext

def normalizewords(text):
    return re.compile(r'\W+',re.UNICODE).split(text.lower())

conf=SparkConf().setMaster("local[2]").setAppName("sorted result")
sc=SparkContext(conf=conf)

input=sc.textFile("file:///home/cloudera/PythonTask/sample.txt")

words=input.flatMap(normalizewords)

wordsCount=words.map(lambda x: (x,1)).reduceByKey(lambda x,y: x+y)

sortedwordsCount=wordsCount.map(lambda (x,y):(y,x)).sortByKey()

results=sortedwordsCount.collect()

for result in results:
    count=str(result[0])
    word=result[1].encode('ascii','ignore')

    if(word):
        print word +"\t\t"+ count

results.saveAsTextFile("/var/www/myoutput")
Run Code Online (Sandbox Code Playgroud)

python apache-spark pyspark

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

如何解压缩Spark DataSet中的多个键

我有以下内容DataSet,具有以下结构。

case class Person(age: Int, gender: String, salary: Double)
Run Code Online (Sandbox Code Playgroud)

我想通过和来确定平均工资,因此我将这两个关键字归为一组。我遇到了两个主要问题,一个是两个键混合在一个键中,但我想将它们放在两个不同的列中,另一个是该列的名称很傻,我不知道该怎么做。使用将该文件重命名(显然,将不起作用)。genderageDSaggregatedasaliasDS API

val df = sc.parallelize(List(Person(100000.00, "male", 27), 
  Person(120000.00, "male", 27), 
  Person(95000, "male", 26),
  Person(89000, "female", 31),
  Person(250000, "female", 51),
  Person(120000, "female", 51)
)).toDF.as[Person]

df.groupByKey(p => (p.gender, p.age)).agg(typed.avg(_.salary)).show()

+-----------+------------------------------------------------------------------------------------------------+
|        key| TypedAverage(line2503618a50834b67a4b132d1b8d2310b12.$read$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$Person)|          
+-----------+------------------------------------------------------------------------------------------------+ 
|[female,31]|  89000.0... 
|[female,51]| 185000.0...
|  [male,27]| 110000.0...
|  [male,26]|  95000.0...
+-----------+------------------------------------------------------------------------------------------------+
Run Code Online (Sandbox Code Playgroud)

scala apache-spark apache-spark-dataset

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

C用指针循环数组

我是C的新手,但我有Java和Android方面的经验.我的for循环中有问题.它永远不会结束,只是继续下去.

char entered_string[50];
char *p_string = NULL;

gets( entered_string );

for( p_string = entered_string; p_string != '\0'; p_string++ ){
    //....
}
Run Code Online (Sandbox Code Playgroud)

我知道获取是不安全的,不推荐和弃用,但根据我的规格,我必须使用它.我想通过使用指针遍历每个元素.

c pointers loops for-loop

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

没有得到Pollard的rho算法实现的正确输出

我不知道在使用Pollard的rho算法计算主要因子分解时我在哪里做错了.

#include<stdio.h>
#define f(x)  x*x-1

int pollard( int );
int gcd( int, int);

int main( void ) {
    int n;
    scanf( "%d",&n );
    pollard( n );
    return 0;  
}

int pollard( int n ) {
    int i=1,x,y,k=2,d;
    x = rand()%n;
    y = x;

    while(1) {
        i++;
        x = f( x ) % n;
        d = gcd( y-x, n);

        if(d!=1 && d!=n)
            printf( "%d\n", d);

        if(i == k) {
            y = x;
            k = 2 * k;
        }
    }
}   
int …
Run Code Online (Sandbox Code Playgroud)

c algorithm recursion prime-factoring

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

我的c代码中的"分段错误"错误

#include<string.h>
#include<stdio.h>


int firstState(char s[], int length);
int secondState(char s[], int length);
int thirdState(char s[], int length);
int forthState(char s[], int length);

int main()
{
    char string[10];

    gets(string);

    if( firstState(string, 0) )
        printf("Accept\n");
    else
        printf( "Not accept\n" );

    return 0;
}

int firstState(char s[], int length)
{  
    if(s[length] == 'a')
        return (secondState(s, length++));
    else if(s[length] == 'b')
        return firstState(s, length++);
    else
        return 0;
}

int secondState(char s[], int length)
{  
    if(s[length] == 'a')
        return secondState(s, length++);
    else if(s[length] == 'b') …
Run Code Online (Sandbox Code Playgroud)

c segmentation-fault

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

在pyspark中组合两个RDD

假设我有以下 RDD:

a = sc.parallelize([1, 2, 5, 3])
b = sc.parallelize(['a','c','d','e'])
Run Code Online (Sandbox Code Playgroud)

我如何将这 2 个 RDD 组合成一个 RDD,如下所示:

[('a', 1), ('c', 2), ('d', 5), ('e', 3)]
Run Code Online (Sandbox Code Playgroud)

使用a.union(b)just 将它们组合在一个列表中。任何的想法?

apache-spark rdd pyspark

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

在数据框中将字符串转换为双精度

我已经构建了一个数据框,使用concat它生成一个字符串。

import sqlContext.implicits._

val df = sc.parallelize(Seq((1.0, 2.0), (3.0, 4.0))).toDF("k", "v")
df.registerTempTable("df")

val dfConcat = df.select(concat($"k", lit(","), $"v").as("test"))

dfConcat: org.apache.spark.sql.DataFrame = [test: string]

+-------------+
|         test|
+-------------+
|      1.0,2.0|
|      3.0,4.0|
+-------------+
Run Code Online (Sandbox Code Playgroud)

我怎样才能将它转换回双倍?

我试过投射到DoubleType但我得到null

import org.apache.spark.sql.types._
 intterim.features.cast(IntegerType))

val testDouble = dfConcat.select( dfConcat("test").cast(DoubleType).as("test"))

+----+
|test|
+----+
|null|
|null|
+----+
Run Code Online (Sandbox Code Playgroud)

udf在运行时返回数字格式异常

import org.apache.spark.sql.functions._

val toDbl    = udf[Double, String]( _.toDouble)

val testDouble = dfConcat
.withColumn("test",      toDbl(dfConcat("test")))              
.select("test")
Run Code Online (Sandbox Code Playgroud)

apache-spark apache-spark-sql

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

为什么我从date_format()PySpark函数得到null结果?

假设有一个日期框架,其中一列包含日期作为字符串.对于该假设,我们创建以下dataFrame作为示例:

# Importing sql types
from pyspark.sql.types import StringType, IntegerType, StructType, StructField, DoubleType, FloatType, DateType
from pyspark.sql.functions  import date_format
import random
import time

def strTimeProp(start, end, format, prop):
    stime = time.mktime(time.strptime(start, format)) # Parse a string representing a time according to a format
    etime = time.mktime(time.strptime(end, format)) 
    ptime = stime + prop * (etime - stime) 
    return time.strftime(format, time.localtime(ptime))

def randomDate(start, end, prop):
    return strTimeProp(start, end, '%m-%d-%Y', prop)

# Creación de un dataframe de prueba:
schema = StructType(
        [
     StructField("dates1", …
Run Code Online (Sandbox Code Playgroud)

python apache-spark pyspark

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

如何调整MLPRegressor?

我目前有一个包含变量和观测值的数据集。我想预测一个变量(需求),它是一个连续的变量,因此我需要使用回归模型。我尝试过Linear Regression,并使用R2大约的指标对其进行了评估0.85。我想用其他模型评估其性能,其中一个是NNs。我相信神经网络更适合分类之类的其他任务,不过我想尝试一下。

scikit-learn之所以决定使用它,主要是因为它提供了两种模型(线性回归和多层感知器),但事实是,R2与线性回归相比,该度量标准太过复杂了。因此,我得出的结论是我缺少许多重要的配置。在下面,您可以查看我的代码以及数据的来源。

我的数据有以下几列,只demand(这是我的标签)populationgdpdayyear是数值连续,其余都是绝对的。

['demand','holy','gdp','population', 'day','year', 'f0', 'f1', 'f2', 'f3', 'f4','f5', 'f6', 'f7', 'f8', 'f9', 'f10', 'f11', 'f12', 'f13', 'f14', 'f15', 'f16', 'f17', 'f18', 'f19', 'f20', 'f21', 'f22', 'f23', 'g0', 'g1', 'g2', 'g3', 'g4', 'g5', 'g6', 'g7', 'g8', 'g9', 'g10', 'g11']
Run Code Online (Sandbox Code Playgroud)

这是我实际上所做的,我删除了一些输出。

import pandas as pd
import numpy as np
import math as math

from sklearn.linear_model import LinearRegression …
Run Code Online (Sandbox Code Playgroud)

python regression neural-network scikit-learn

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