我已经进口了
import org.apache.spark.sql.Column;
import org.apache.spark.sql.functions;
Run Code Online (Sandbox Code Playgroud)
在我的Java-Spark驱动程序中
但
DataFrame inputDFTwo = hiveContext.sql("select * from sourcing_src_tbl");
inputDFTwo.withColumn("asofdate", lit("2016-10-2"));
Run Code Online (Sandbox Code Playgroud)
这里"点亮"仍然在eclipse(windows)中显示错误.我应该包含哪些库才能使其正常工作.
我正在连接2个数据框并选择左框架的所有列,例如:
val join_df = first_df.join(second_df, first_df("id") === second_df("id") , "left_outer")
Run Code Online (Sandbox Code Playgroud)
在上面我想做的选择first_df.*.如何在连接中选择一帧的所有列?
我正在使用 Scala Spark 处理数据,并希望使用 pySpark/python 进行进一步处理。
下面是 Pyspark -> scala 的示例,但我正在寻找 scala->Pyspark
以下是我为 Scala-> PySpark 找到的一些方法
val pipedData = data.rdd.pipe("hdfs://namenode/hdfs/path/to/script.py")但是使用 Pipe,我失去了数据帧的好处,而在 python 中,我可能需要将其重新转换为数据帧/数据集。
关于 Scala Spark 如何使用相同的 SparkContext/session 与 PYSpark 对话,还有其他更好的方法吗?
我在Hive中使用左连接插入记录。当我设置限制1时,查询有效,但对于所有记录,查询卡住了99%的减少工作。
下面的查询作品
Insert overwrite table tablename select a.id , b.name from a left join b on a.id = b.id limit 1;
Run Code Online (Sandbox Code Playgroud)
但这不是
Insert overwrite table tablename select table1.id , table2.name from table1 left join table2 on table1.id = table2.id;
Run Code Online (Sandbox Code Playgroud)
我增加了减速器的数量,但仍然无法正常工作。
我正在尝试隐藏依赖项(构建 uber jar)并在其他项目中导入。在 uber jar 中我可以看到类,但是当我尝试导入阴影文件夹/包时不显示。下面是我的 pom.xmls
带有阴影依赖项和 uber jar 的 Test1
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>test</groupId>
<artifactId>test</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>jar</packaging>
<properties>
<jdk.version>1.8</jdk.version>
<jodatime.version>2.5</jodatime.version>
</properties>
<dependencies>
<dependency>
<groupId>joda-time</groupId>
<artifactId>joda-time</artifactId>
<version>${jodatime.version}</version>
</dependency>
</dependencies>
<build>
<finalName>test</finalName>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-eclipse-plugin</artifactId>
<version>3.1.0</version>
<configuration>
<downloadSources>true</downloadSources>
<downloadJavadocs>false</downloadJavadocs>
</configuration>
</plugin>
<!-- Set a compiler level -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.7.0</version>
<configuration>
<source>${jdk.version}</source>
<target>${jdk.version}</target>
</configuration>
</plugin>
<!-- Maven Shade Plugin -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-shade-plugin</artifactId>
<version>3.1.0</version>
<executions>
<!-- Run shade goal on package phase -->
<execution>
<phase>package</phase> …Run Code Online (Sandbox Code Playgroud) 我有最后的记录(后加入和过滤)的火花dataframe.I需要比较连续行的(通过键分区)列值,并根据病情需要改变e_date列的值,例如:
sample table
key1 key 2 col1 col2 s_date e_date
a 1 cv1 cv2 2014 2099
a 1 cv3 cv2 2016 2099
b 2 cv5 cv6 2016 2099
b 2 cv5 cv6 2016 2099
final table should look like
key1 key 2 col1 col2 s_date e_date
a 1 cv1 cv2 2014 2015 (next records s_date-1)
a 1 cv3 cv2 2016 2099
b 2 cv5 cv6 2016 2099
Run Code Online (Sandbox Code Playgroud)
上面的表有复合键,所以key1和key2是键
通过键比较col1和col2值
如果任何列具有新值结束旧记录,其中新记录的s_date为-1(最终表中的第1,2行)
scala-spark中的任何指针
是否可以使用单个过滤器操作将 DF 分为两部分。例如
假设 df 有以下记录
UID Col
1 a
2 b
3 c
Run Code Online (Sandbox Code Playgroud)
如果我做
df1 = df.filter(UID <=> 2)
Run Code Online (Sandbox Code Playgroud)
我可以在单个操作中将过滤和未过滤的记录保存在不同的 RDD 中吗?
df1 can have records where uid = 2
df2 can have records with uid 1 and 3
Run Code Online (Sandbox Code Playgroud) Spark中有没有办法只提取分区列名?我正在使用的解决方法是运行" show extended table like table_name"使用HiveContext