小编sri*_*ala的帖子

spark sql当前时间戳功能

在spark sql中是否有一个sql fucntion返回当前时间戳,例如在impala中NOW()是返回当前时间戳的函数在spark sql中有类似的吗?

谢谢

apache-spark apache-spark-sql

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

rdd.collect().toMap to rdd.collectAsMap()之间的区别?

是否有任何性能的影响,当我在我的RDD使用collectAsMap代替rdd.collect().toMap的?

我有一个键值RDD,我要转换为HashMap类,据我所知收集()是没有效率的大型数据集,因为它运行在驱动程序我可以用collectAsMap而不是有任何的性能影响?

原版的:

val QuoteHashMap=QuoteRDD.collect().toMap 
val QuoteRDDData=QuoteHashMap.values.toSeq 
val QuoteRDDSet=sc.parallelize(QuoteRDDData.map(x => x.toString.replace("(","").replace(")",""))) 
QuoteRDDSet.saveAsTextFile(Quotepath) 
Run Code Online (Sandbox Code Playgroud)

更改:

val QuoteHashMap=QuoteRDD.collectAsMap() 
val QuoteRDDData=QuoteHashMap.values.toSeq 
val QuoteRDDSet=sc.parallelize(QuoteRDDData.map(x => x.toString.replace("(","").replace(")",""))) 
QuoteRDDSet.saveAsTextFile(Quotepath)
Run Code Online (Sandbox Code Playgroud)

scala distributed-computing apache-spark

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

如何收集spark sql输出到文件?

下面是我的spark sql脚本,它加载文件并在其上使用SQL,我想从sql查询中收集输出并将其写入文件,不知道如何能有人帮助.

   //import classes for sql
import org.apache.spark.sql.SQLContext
import org.apache.spark.{SparkConf, SparkContext}

val sqlContext = new org.apache.spark.sql.SQLContext(sc)

// createSchemaRDD is used to implicitly convert an RDD to a SchemaRDD.
import sqlContext.createSchemaRDD


//hdfs paths
val warehouse="hdfs://quickstart.cloudera/user/hive/warehouse/"
val customers_path=warehouse+"people/people.txt"
customers_path

//create rdd file called file
val file=sc.textFile(customers_path)

val schemaString="name age"

import org.apache.spark.sql._



val schema =
  StructType(
    schemaString.split(",").map(fieldName => StructField(fieldName, StringType, true)))

val rowRDD=file.map(_.split(",")).map(p => Row(p(0),p(1).trim))

val peopleSchemRDD=sqlContext.applySchema(rowRDD, schema)

// Register the SchemaRDD as a table.
peopleSchemRDD.registerTempTable("people")

// SQL statements can be run by …
Run Code Online (Sandbox Code Playgroud)

scala apache-spark apache-spark-sql

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

如何从 SQL 查询中获取表名?

我想使用 Scala 从 Spark 中的 sql 查询中获取所有表名称。

假设用户发送一个 SQL 查询,它看起来像:

select * from table_1 as a left join table_2 as b on a.id=b.id
Run Code Online (Sandbox Code Playgroud)

我想获得所有表格列表,如table_1table_2

正则表达式是唯一的选择吗?

scala apache-spark apache-spark-sql

6
推荐指数
2
解决办法
5423
查看次数

在spark中加入两个RDD

我有两个rdd一个rdd只有一列其他有两列加入两个RDD上的键我已经添加了虚拟值0,有没有其他有效的方法这样做使用连接?

val lines = sc.textFile("ml-100k/u.data")
val movienamesfile = sc.textFile("Cml-100k/u.item")

val moviesid = lines.map(x => x.split("\t")).map(x => (x(1),0))
val test = moviesid.map(x => x._1)
val movienames = movienamesfile.map(x => x.split("\\|")).map(x => (x(0),x(1)))
val shit = movienames.join(moviesid).distinct()
Run Code Online (Sandbox Code Playgroud)

编辑:

让我在SQL中转换这个问题.比方说我有table1 (moveid)table2 (movieid,moviename).在SQL中我们写了类似的东西:

select moviename, movieid, count(1)
from table2 inner join table table1 on table1.movieid=table2.moveid 
group by ....
Run Code Online (Sandbox Code Playgroud)

这里的SQL table1只有一列,其中table2有两列仍然可以join工作,Spark中的相同方式可以连接来自两个RDD的键.

scala apache-spark

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

scala中是否存在指数函数

如何在scala中编写这个数学函数?无法在scala中找到exp.

1 /(1 + EXP(3.4761-101.09*0.05-0.0440))

scala

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