我想打印整个数据帧,但我不想打印索引
另外,一列是datetime类型,我只想打印时间,而不是日期.
数据框如下所示:
   User ID           Enter Time   Activity Number
0      123  2014-07-08 00:09:00              1411
1      123  2014-07-08 00:18:00               893
2      123  2014-07-08 00:49:00              1041
Run Code Online (Sandbox Code Playgroud)
我希望它打印为
User ID   Enter Time   Activity Number
123         00:09:00              1411
123         00:18:00               893
123         00:49:00              1041
Run Code Online (Sandbox Code Playgroud) 我有一个非常大的csv文件,所以我无法将它们全部读入内存.我只想阅读并处理其中的几行.所以我在Pandas中寻找一个可以处理这个任务的函数,基本的python可以很好地处理这个:
with open('abc.csv') as f:
    line = f.readline()
    # pass until it reaches a particular line number....
Run Code Online (Sandbox Code Playgroud)
但是,如果我在熊猫中这样做,我总是阅读第一行:
datainput1 = pd.read_csv('matrix.txt',sep=',', header = None, nrows = 1 )
datainput2 = pd.read_csv('matrix.txt',sep=',', header = None, nrows = 1 )
Run Code Online (Sandbox Code Playgroud)
我正在寻找一些更简单的方法来处理熊猫中的这个任务.例如,如果我想读取1000到2000的行.我该如何快速完成?
我想使用pandas,因为我想将数据读入数据帧.
我目前正在使用Intellij IDEA构建我的开发IDE.我的跟踪方式与http://spark.apache.org/docs/latest/quick-start.html完全相同
build.sbt文件
name := "Simple Project"
version := "1.0"
scalaVersion := "2.11.7"
 libraryDependencies += "org.apache.spark" %% "spark-core" % "2.0.0"
Run Code Online (Sandbox Code Playgroud)
示例程序文件
import org.apache.spark.SparkContext
import org.apache.spark.SparkContext._
import org.apache.spark.SparkConf
object MySpark {
    def main(args: Array[String]){
        val logFile = "/IdeaProjects/hello/testfile.txt" 
        val conf = new SparkConf().setAppName("Simple Application")
        val sc = new SparkContext(conf)
        val logData = sc.textFile(logFile, 2).cache()
        val numAs = logData.filter(line => line.contains("a")).count()
        val numBs = logData.filter(line => line.contains("b")).count()
        println("Lines with a: %s, Lines with b: %s".format(numAs, numBs))
    }
}
Run Code Online (Sandbox Code Playgroud)
如果我使用命令行:
sbt …Run Code Online (Sandbox Code Playgroud) 我想使用Spark数据帧的架构创建一个hive表.我怎样才能做到这一点?
对于固定列,我可以使用:
val CreateTable_query = "Create Table my table(a string, b string, c double)"
sparksession.sql(CreateTable_query) 
Run Code Online (Sandbox Code Playgroud)
但是我的数据框中有很多列,所以有没有办法自动生成这样的查询?
我想在Python中创建一个包含24列(表示24小时)的数据帧,如下所示:
column name     0   1   2   3 ...   24
row 1           0   0   0   0        0
row 2           0   0   0   0        0
row 3           0   0   0   0        0
Run Code Online (Sandbox Code Playgroud)
我想知道如何初始化它?在将来,我可能会添加第4行,所有"0",如何做到这一点?谢谢,
我有一个火花数据框看起来像:
id   DataArray
a    array(3,2,1)
b    array(4,2,1)     
c    array(8,6,1)
d    array(8,2,4)
Run Code Online (Sandbox Code Playgroud)
我想将此数据帧转换为:
id  col1  col2  col3
a    3     2     1
b    4     2     1
c    8     6     1 
d    8     2     4
Run Code Online (Sandbox Code Playgroud)
我应该使用什么功能?
我正在使用pandas数据帧.有一个特定的列有时间信息.
原始数据喜欢这样:
5:15am
5:28am
6:15am
Run Code Online (Sandbox Code Playgroud)
所以我需要将原始数据转换为datetime格式:
format = '%I:%M%p'
dataset['TimeStamp'] = pd.to_datetime(dataset['TimeStamp'],format)
Run Code Online (Sandbox Code Playgroud)
但是,我得到了:
2014-07-04 05:15:00
2014-07-04 05:28:00
2014-07-04 06:15:00
Run Code Online (Sandbox Code Playgroud)
我不想要年份和日期信息,只想要时间.我该如何删除它.谢谢.
我正在尝试使用该between_time功能.我已将字符串类型时间格式化为datetime
dataset['TimeStamp'] = pd.to_datetime(dataset['TimeStamp'],format)
Run Code Online (Sandbox Code Playgroud)
我定义了搜索开始时间和结束时间:
start = datetime.time(9,40,0)
end = datetime.time(10,00,0)
Run Code Online (Sandbox Code Playgroud)
然后我打电话 dataset['TimeStamp'].between_time(start, end)
这是我得到的错误:
TypeError: Index must be DatetimeIndex
Run Code Online (Sandbox Code Playgroud)
请问我该怎么办呢.谢谢
我有一个将数据帧写入文件的测试程序。数据帧是通过为每行添加序号来生成的,例如
1,2,3,4,5,6,7.....11
2,3,4,5,6,7,8.....12
......
Run Code Online (Sandbox Code Playgroud)
数据框中有 100000 行,但我认为它不是太大。当我提交 Spark 任务时,将数据帧写入 HDFS 上的文件大约需要 20 分钟。我想知道为什么这么慢,以及如何提高性能。
val sc = new SparkContext(conf)
val sqlContext = new org.apache.spark.sql.SQLContext(sc)
val numCol = 11
val arraydataInt = 1 to 100000 toArray
val arraydata = arraydataInt.map(x => x.toDouble)
val slideddata = arraydata.sliding(numCol).toSeq
val rows = arraydata.sliding(numCol).map { x => Row(x: _*) }
val datasetsize = arraydataInt.size
val myrdd = sc.makeRDD(rows.toSeq, arraydata.size - numCol).persist()
val schemaString = "value1 value2 value3 value4 value5 " +
                   "value6 value7 value8 value9 value10 …Run Code Online (Sandbox Code Playgroud) 根据我的具体要求,我想编写一个UDAF,它只收集所有输入行.
输入是两列行,Double Type;
中间模式,"我想",是ArrayList(如果我错了,请纠正我)
返回的数据类型是ArrayList
我写了一篇关于我的UDAF的"想法",但我希望有人帮助我完成它.
class CollectorUDAF() extends UserDefinedAggregateFunction {
  // Input Data Type Schema
  def inputSchema: StructType = StructType(Array(StructField("value", DoubleType), StructField("y", DoubleType)))
  // Intermediate Schema
  def bufferSchema = util.ArrayList[Array(StructField("value", DoubleType), StructField("y", DoubleType)]
  // Returned Data Type .
  def dataType: DataType = util.ArrayList[Array(StructField("value", DoubleType), StructField("y", DoubleType)]
  // Self-explaining
  def deterministic = true
  // This function is called whenever key changes
  def initialize(buffer: MutableAggregationBuffer) = {
  }
  // Iterate over each entry of a group
  def update(buffer: MutableAggregationBuffer, input: Row) …Run Code Online (Sandbox Code Playgroud)