版本:Spark 1.6.2,Scala 2.10
我正在执行下面的命令spark-shell.我试图查看Spark默认创建的分区数.
val rdd1 = sc.parallelize(1 to 10)
println(rdd1.getNumPartitions) // ==> Result is 4
//Creating rdd for the local file test1.txt. It is not HDFS.
//File content is just one word "Hello"
val rdd2 = sc.textFile("C:/test1.txt")
println(rdd2.getNumPartitions) // ==> Result is 2
Run Code Online (Sandbox Code Playgroud)
根据Apache Spark 文档,spark.default.parallelism我的笔记本电脑(2核心处理器)中的核心数量.
我的问题是:rdd2似乎正在给出2个分区的正确结果,如文档中所述.但为什么rdd1将结果作为4个分区?
我想在Dataframe(UUID生成器)中添加一个新列.
UUID值看起来像 21534cf7-cff9-482a-a3a8-9e7244240da7
我的研究:
我试过withColumn火花的方法.
val DF2 = DF1.withColumn("newcolname", DF1("existingcolname" + 1)
Run Code Online (Sandbox Code Playgroud)
因此DF2将newcolname在所有行中添加一个额外的列,并添加1.
根据我的要求,我想要一个可以生成UUID的新列.
我对 Spark 数据帧分区数量有疑问。
如果我有 Hive 表(员工),其中包含列(姓名、年龄、ID、位置)。
CREATE TABLE employee (name String, age String, id Int) PARTITIONED BY (location String);
如果员工表有 10 个不同的位置。所以数据在HDFS中会被划分为10个分区。
如果我通过读取 Hive 表(员工)的全部数据来创建 Spark 数据框(df)。
Spark 将为一个数据帧(df)创建多少个分区?
df.rdd.partitions.size = ??
我的笔记本电脑上安装了 Spark。我能够执行“spark-shell”命令并打开 scala shell,如下所示。
C:\Spark1_6\spark-1.6.0-bin-hadoop2.6\bin>spark-shell
scala>
但是当我尝试执行pyspark命令时。
C:\Spark1_6\spark-1.6.0-bin-hadoop2.6\bin>pyspark
我收到以下错误消息。
'python' 未被识别为内部或外部命令
我确实手动设置了环境用户“路径”变量。通过附加
";C:\Python27"
我重新启动了笔记本电脑,但仍然出现相同的错误。任何人都可以帮我解决这个问题吗?我没有正确更新环境变量吗?
版本:Spark:1.6.2 Windows:8.1